STM32Cubemx:定时器编码器模式配置
一、Cubemx配置

定时器模式选择编码器模式
计数器计数周期选择最大65535,可以根据需要修改,我选择默认。

编码器可以选择一倍频、二倍频、四倍频,这里选择四倍频。
二、程序设计
2.1串口配置
为了方便打印编码器计数结果,可以先配置串口输出,具体参考STM32系列(HAL库) ——使用串口打印的3种方式,推荐方式二。
2.2 开启编码器
HAL_TIM_Encoder_Start(&htim8,TIM_CHANNEL_ALL); //放在系统初始化代码段。
Cubemx只是帮助我们进行配置,需要我们手动打开定时器编码器模式。
2.3 读取编码器计数值
__HAL_TIM_GET_COUNTER(&htim8) // 返回16位数据,如果需要负值要强制数据类型转换
如果你需要获取负计数值,那就需要
强制数据类型转换。
因为这个调用这个宏返回的数据是16位的数据,所以强制数据类型要转为short型。
记住不能是int型,因为int是32位,强制转为int型只会改变int低16位,高16位不会变。
2.4 清空计数值
TIMx->CNT=0; // x表示第几个定时器,例如TIM8->CNT=0;

浙公网安备 33010602011771号