采用STM32F103C8T6的定时器,输出PWM信号,用于控制模型车的舵机和电机速度。
采用的是STM32CubeMX和Hal库函数程序。
常规舵机和电调的PWM信号
舵机和电调的PWM信号的周期通常为20ms。
对于舵机,高电平部分时间一般为0.5ms~2.5ms范围内调整角度,0.5ms对应0°,1ms对应45°,1.5ms对应90°,2ms对应135°,2.5ms对应180°。
对于电机电调,高电平部分时间一般为1ms~2ms,1.5ms是归中,1ms和2ms分别为前进和后退的满速度。
定时器的PWM输出功能
STM32CubeMX配置
STM32F103C8T6定时器时钟设置为72MHz
采用TIM3定时器产生PWM信号
PSC设定为719,ARR设定为1999,用于产生20ms脉冲周期。
将遥控器的摇杆电位器通过ADC采集,并转化为0-100数字,此时CRR为0-100数字+100,就可以得到1ms~2ms的高电平占比
程序部分
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1); HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_2);
__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,(controler_data[0]+100)); __HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_2,(controler_data[1]+100));
模型车轮子方向归正和马达零速代码块
__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,150); __HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_2,150);