//---------------------------------------------------------------------------------------------------- void PWM_Init(void) { //电机 ftm_init_struct0.FTM_Ftmx = FTM0; //使能FTM0通道 ftm_init_struct0.FTM_Mode = FTM_MODE_PWM; //输出PWM模式 ftm_init_struct0.FTM_PwmFreq = 20000; //PWM频率18000Hz ftm_init_struct0.FTM_PwmDeadtimeCfg=DEADTIME_CH45|DEADTIME_CH67; //编码器 FTM1:A12 A13 ftm_init_struct1.FTM_Ftmx = FTM1; //只有FTM1和FTM2有正交解码功能 ftm_init_struct1.FTM_Mode = FTM_MODE_QD; //正交解码功能 ftm_init_struct1.FTM_QdMode = QD_MODE_PHAB; //AB相输入模式 //编码器 FTM2:A10 A11 ftm_init_struct2.FTM_Ftmx = FTM2; //只有FTM1和FTM2有正交解码功能 ftm_init_struct2.FTM_Mode = FTM_MODE_QD; //正交解码功能 ftm_init_struct2.FTM_QdMode = QD_MODE_PHAB; //AB相输入模式 LPLD_FTM_Init(ftm_init_struct0); LPLD_FTM_Init(ftm_init_struct1); LPLD_FTM_Init(ftm_init_struct2); LPLD_FTM_PWM_Enable(FTM0, FTM_Ch4, 0, PTD4, ALIGN_LEFT); LPLD_FTM_PWM_Enable(FTM0, FTM_Ch5, 0, PTD5, ALIGN_LEFT); LPLD_FTM_PWM_Enable(FTM0, FTM_Ch6, 0, PTD6, ALIGN_LEFT); LPLD_FTM_PWM_Enable(FTM0, FTM_Ch7, 0, PTD7, ALIGN_LEFT); LPLD_FTM_QD_Enable(FTM1, PTA12, PTA13);//右电机 LPLD_FTM_QD_Enable(FTM2, PTA10, PTA11);//左电机 }
/* * 初始化FTM1的正交解码功能 * */ void qd_init(void) { //配置正交解码功能参数 ftm_init_struct.FTM_Ftmx = FTM1; //只有FTM1和FTM2有正交解码功能 ftm_init_struct.FTM_Mode = FTM_MODE_QD; //正交解码功能 ftm_init_struct.FTM_QdMode = QD_MODE_PHAB; //AB相输入模式 //初始化FTM LPLD_FTM_Init(ftm_init_struct); //使能AB相输入通道 //PTB0引脚接A相输入、PTB1引脚接B相输入 LPLD_FTM_QD_Enable(FTM1, PTB0, PTB1); }
void init_all_pulse_counter() { GPIO_InitTypeDef gpio_init_struct={0}; gpio_init_struct.GPIO_PTx = PTA; gpio_init_struct.GPIO_Pins = GPIO_Pin12 | GPIO_Pin13; gpio_init_struct.GPIO_Dir = DIR_INPUT; gpio_init_struct.GPIO_PinControl = INPUT_PULL_UP | INPUT_PF_EN; LPLD_GPIO_Init(gpio_init_struct); //配置正交解码功能参数 FTM_InitTypeDef ftm_init_struct={0}; ftm_init_struct.FTM_Ftmx = FTM1; //只有FTM1和FTM2有正交解码功能 ftm_init_struct.FTM_Mode = FTM_MODE_QD; //正交解码功能 ftm_init_struct.FTM_QdMode = QD_MODE_PHAB; //AB相输入模式 //初始化FTM LPLD_FTM_Init(ftm_init_struct); //使能AB相输入通道 //PTB0引脚接A相输入、PTB1引脚接B相输入 LPLD_FTM_QD_Enable(FTM1, PTA12, PTA13); gpio_init_struct.GPIO_PTx = PTB; gpio_init_struct.GPIO_Pins = GPIO_Pin18 | GPIO_Pin19; gpio_init_struct.GPIO_Dir = DIR_INPUT; gpio_init_struct.GPIO_PinControl = INPUT_PULL_UP | INPUT_PF_EN; LPLD_GPIO_Init(gpio_init_struct); //配置正交解码功能参数 ftm_init_struct.FTM_Ftmx = FTM2; //只有FTM1和FTM2有正交解码功能 ftm_init_struct.FTM_Mode = FTM_MODE_QD; //正交解码功能 ftm_init_struct.FTM_QdMode = QD_MODE_PHAB; //AB相输入模式 //初始化FTM LPLD_FTM_Init(ftm_init_struct); //使能AB相输入通道 //PTB0引脚接A相输入、PTB1引脚接B相输入 LPLD_FTM_QD_Enable(FTM2, PTB18, PTB19); }