STM32、外部中断、旋转编码器

2019-07-21 01:35发布

现在小弟需要用STM32的外部中断处理旋转编码器返回来的信号,判断方向并进行计数。由于经常不能复位(Ac=0,Bc=0),所以加了Tim进行复位操作。
现在还是出现快速转动时会出现于往预期的反方向计数。
查了好久了。
麻烦各位帮忙看看问题出在哪,或者是有什么更好的处理方法(PS:只能使用外部中断)










友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
21条回答
kaixi
1楼-- · 2019-07-21 14:41
dfbb123 发表于 2018-12-25 09:26
看着好麻烦啊,看不懂了,当然我水平不高了,不过编码器到经常用,我讲讲我用的方法
1:定时器编码器模式
...

试过用Stm32CubeMX配置了定时器的编码器模式。因为现在用的编码器是定位为20,分辨能力是10P的。
转一次只会有上升沿或只会有下降沿。
所以用定时器的编码器模式的话,有转动两次才计数+-1。
dfbb123
2楼-- · 2019-07-21 16:13
 精彩回答 2  元偷偷看……
brucewoo
3楼-- · 2019-07-21 21:32
 精彩回答 2  元偷偷看……
kaixi
4楼-- · 2019-07-22 01:51
brucewoo 发表于 2018-12-25 12:08
我实验的是差不多的东西,就是满淘宝都是的那种编码器模块。
你用这东西没有出现快速旋转时计数方向错的 ...

有呀,我用的是外部中断,你是用什么处理的
kaixi
5楼-- · 2019-07-22 04:09
 精彩回答 2  元偷偷看……
kaixi
6楼-- · 2019-07-22 04:25
如果使用定时器的编码器模式的话,怎么实现0到N的调档(顺时加到N,再顺时就一直保持在N,逆时减到0,再逆时就一直保持在0),大伙知道吗,求帮助

一周热门 更多>