提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
BLDC六步换向法控制原理资料参考:
https://zhuanlan.zhihu.com/p/609517326
提示:以下是本篇文章正文内容,下面案例可供参考
一、模型介绍
因为电路及输出信号由主板及电机输出,所以不包含在代码中。只需要生成处理Hall信号部分的代码
Hall_B /Hall_C 和电角度对比
二、代码生成
三、代码移植
一、按键控制正反转
tatic void key_init(void){
GPIO_InitTypeDef GPIO_InitStructure;
EXTI_InitTypeDef EXTI_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz;
GPIO_Init(GPIOE, &GPIO_InitStructure);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource6);
EXTI_InitStructure.EXTI_Line=EXTI_Line6;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3; //抢占优先级2
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2; //子优先级0
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能外部中断通道
NVIC_Init(&NVIC_InitStructure); //根据N
}
void EXTI9_5_IRQHandler(void){
if(EXTI_GetITStatus(EXTI_Line6)){//PE6
if(Control_U.Direction){
Control_U.Direction=0;
}else{
Control_U.Direction=1;
}
EXTI_ClearITPendingBit(EXTI_Line6);
}
}
二、模型运行
void run_init(void){
Control_initialize();//初始化模型
}
//以10K的频率运行。可优化项:上管以PWM波形开启,同时使用CC4作为ADC的触发,可以同时采集电压等信息
void TIM1_UP_IRQHandler(void){
Control_U.Halleffectsignalh_a=Hall_U_get;
Control_U.Halleffectsignalh_b=Hall_V_get;
Control_U.Halleffectsignalh_c=Hall_W_get;
Control_step();//运行模型
if(Array_comparison()){//判断读取当前的霍尔状态是否是上一个状态
PWM_AH_L; PWM_BH_L;PWM_CH_L;
PWM_AL_L; PWM_BL_L;PWM_CL_L;
if(Control_Y.Gates[0]){
PWM_AH_H;
}
if(Control_Y.Gates[1]){
PWM_AL_H;
}
if(Control_Y.Gates[2]){
PWM_BH_H;
}
if(Control_Y.Gates[3]){
PWM_BL_H;
}
if(Control_Y.Gates[4]){
PWM_CH_H;
}
if(Control_Y.Gates[5]){
PWM_CL_H;
}
Bit_cop();//拷贝当前的霍尔状态,下一次再用来对比
}
TIM_ClearITPendingBit(TIM1, TIM_IT_Update);
}
四、验证代码
用手转动电机,测试信号。没有发现上下管同时开启的情况(手速不稳定,波形比较难看)。
五、测试结果
转动图片
电流
下管波形
上管波形