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;
posted @ 2023-11-12 15:04  SuperCodeCat  阅读(100)  评论(0)    收藏  举报  来源