推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

获得赏金
10.00元
定时器编码器接口 HAL库复现 定量旋转速度方向 stm32cubemx开发

更新时间:2024-07-23 22:29:01 大小:23M 上传用户:mulanhk查看TA发布的资源 标签:定时器编码器接口hal 下载积分:4分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

定时器的编码器接口可以接收增量(正交)编码器信号,这种信号的产生,定时器根据编码器产生的正交信号(两个波形),自动控制CNT自增或自减。通过程序获取CNT值重刻可以获得编码器位置、旋转方向、旋转速度。



正交编码其波形

规律:

正转时,A信号会比B信号快半个周期先变成高电平(A下降沿时B是高电平)

反转时,A信号会比B信号慢半个周期先变成高电平(A下降沿时B是低电平)


image.png

每个高级定时器和通用定时器都拥有一个编码器接口,借用输入捕获IC通道1和通道2。

image.png


还有三种工作模式:当定时器设置为编码器接口时,定时器的计数器就不会由内外部时钟控制,只有两个正交编码器信号控制。计数器自增、自减规律如下:


在TI1计数:即只看A相的上升沿和下降沿,忽略掉B相的上升沿和下降沿。A上升沿B此时高电平则向下计数(自减)

仅在TI2计数:即只看B相的上升沿和下降沿,忽略掉A相的上升沿和下降沿。B上升沿A此时高电平则向上计数(自增)

TI1计数和TI2计数:即既看A相的上升沿和下降沿,也要看B相的上升沿和下降沿。A上升沿B此时高电平则向下计数、B上升沿A此时高电平则向上计数。


项目配置:

image.png

image.png

编码模式:TI1和TI2

两个都是上升沿


1.打开编码器模式、

2.设置定时器的相关参数。由于是检测速度,所以这里就不分频,尽可能让定时器快点。计数器设置最大,防止输入信号频率太高溢出。

3.设置计数模式,T11计数和TI2计数

4.设置信号不反转


时钟树配置:


image.png

项目存储路径:

image.png

代码实现:

编写编码器旋转数据读取函数


image.png

可以读取编码器的旋转速度大小和旋转方向


上电后对单片机的初始化操作

image.png


主函数内的循环操作

image.png


最终效果示意图

image.png

部分文件列表

文件名大小
TimerEncoder/
TimerEncoder/.mxproject7KB
TimerEncoder/13. 定时器编码器接口,HAL库复现,stm32cubemx开发.pdf
TimerEncoder/Core/
TimerEncoder/Core/Inc/
TimerEncoder/Core/Inc/gpio.h1KB
TimerEncoder/Core/Inc/main.h2KB
TimerEncoder/Core/Inc/OLED.h1KB
TimerEncoder/Core/Inc/OLED_FONT.h
TimerEncoder/Core/Inc/stm32f1xx_hal_conf.h
TimerEncoder/Core/Inc/stm32f1xx_it.h2KB
...
  • 21ic小能手打赏了10.00

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载