90 lines
2.8 KiB
C
90 lines
2.8 KiB
C
//############################################################
|
||
//FILE: main.c
|
||
//Created on: 2017年1月15日
|
||
//Author: XQ
|
||
//summary: main 主程序的MCU底层初始化,通讯函数
|
||
//本程序只供学习使用,未经作者许可,不得用于其它任何用途
|
||
//版权所有,盗版必究
|
||
//DSP/STM32电机控制开发板
|
||
//硕历电子
|
||
//网址: https://shuolidianzi.taobao.com
|
||
//修改日期:2017/9/8
|
||
//版本:V17_3
|
||
//Author-QQ: 616264123
|
||
//电机控制QQ群:314306105
|
||
//############################################################
|
||
|
||
#include "stm32f10x.h"
|
||
#include "GPIO_int.h"
|
||
#include "Timer.h"
|
||
#include "ADC_int.h"
|
||
#include "Tim1_PWM.h"
|
||
#include "Axis_transform.h"
|
||
#include "Svpwm_dq.h"
|
||
#include "IQ_math.h"
|
||
#include "Tim4_Encoder_PWMDAC.h"
|
||
#include "PI_Cale.h"
|
||
#include "Task_function.h"
|
||
#include "Usart_RS232.h"
|
||
#include "CAN.h"
|
||
|
||
PI_Control pi_spd = PI_Control_DEFAULTS;
|
||
PI_Control pi_id = PI_Control_DEFAULTS;
|
||
PI_Control pi_iq = PI_Control_DEFAULTS;
|
||
|
||
Test TestPare=Test_DEFAULTS;
|
||
TaskTime TaskTimePare=TaskTime_DEFAULTS;
|
||
logic logicContr=logic_DEFAULTS;
|
||
ADCSamp ADCSampPare=ADCSamp_DEFAULTS;
|
||
CLARKE ClarkeI= CLARKE_DEFAULTS;
|
||
PARK ParkI=PARK_DEFAULTS;
|
||
IPARK IparkU=IPARK_DEFAULTS;
|
||
SVPWM Svpwmdq=SVPWM_DEFAULTS;
|
||
IQSin_Cos AngleSin_Cos=IQSin_Cos_DEFAULTS ;
|
||
EQEP EQEPPare=EQEP_DEFAULTS;
|
||
CANSR CANSRPare=CANSR_DEFAULTS;
|
||
|
||
int main(void)
|
||
{
|
||
Delay(10000);
|
||
SysTickConfig(); // 53580 22580 系统滴答时钟 10ms一次
|
||
|
||
logicContr.Run_mode=4; // 开环闭环正方转模式
|
||
|
||
GPIO_LED485RE_int( ); // RS485 和运行LE
|
||
Init_Gpio_ADC( ); // ADC的引脚初始化
|
||
InitUSART3_Gpio( ); //串口3的IO初始化
|
||
InitCAN_Gpio( ); //CAN通讯的IO初始化
|
||
Init_Encoder_Gpio( ); // 正交编码器的引脚初始化
|
||
Init_Gpio_TIM1_PWM( );// 高级定时器1的6个IO初始化
|
||
Usart3_RS232_init( ); // 串口3的底层初始化
|
||
CAN_Config( ); // CAN通讯的底层初始化
|
||
DMA_Configuration( ); //ADC连接DMA读取数据初始化
|
||
Delay(10000);
|
||
ADC1_Configuration( ); //ADC模式初始化
|
||
Delay(10000);
|
||
Tim1_PWM_Init( ); //高级定时器1初始化
|
||
Delay(10000);
|
||
TIM4_Encoder_Config( ); //TIM4的 作为正交编码器输入初始化
|
||
Delay(10000);
|
||
Offset_CurrentReading( ); // 电机的母线电流采样偏执电压
|
||
Delay(10000);
|
||
PI_Pare_init( ); // 三个双PID参数初始化
|
||
EQEP_Pare_init( );
|
||
EXTIX_Init( ); // PB5外部中断引脚,清除编码器0角度
|
||
|
||
while(1)
|
||
{
|
||
RunSystimer( ); // 时间任务标志初始化
|
||
CAN_Sendlen( ); //CAN定时发送电机参数
|
||
Uart3_RS232TX_sen( ); //串口3通讯的定时发送
|
||
ReceiveData_chuli( ); //串口中断接收数据处理
|
||
CAN_Receivechuli( ); //CAN通讯中断接收数据处理
|
||
CLEAR_flag( ); // 清除时间任务标志
|
||
}
|
||
}
|
||
//===========================================================================
|
||
// No more.
|
||
//===========================================================================
|
||
|