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

2019-07-21 01:35发布

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










友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
21条回答
Acuity
1楼-- · 2019-07-21 03:58
外部中断不好处理,会丢脉冲。另外在中断函数延时,大忌啊,还延时这么长。。。。
用定时器的正交编码功能啊,多简单的事。
brucewoo
2楼-- · 2019-07-21 04:37
Acuity 发表于 2018-12-24 23:47
外部中断不好处理,会丢脉冲。另外在中断函数延时,大忌啊,还延时这么长。。。。
用定时器的正交编码功能 ...

刚好最近在实验定时器的编码器输入功能,使用的是几块钱的机械式旋转编码器。
我发现快速旋转时一样会出现CNT值往相反方向计数的情况。
估计是由于机械触点抖动造成的。
请问这种情况在定时器设置里有没有途径避免或改善?或只能在电路上消抖来改善?
如果用光电编码器或磁性编码器,还会有这种情况吗?(只用过几块钱的机械编码器)
dfbb123
3楼-- · 2019-07-21 08:52
 精彩回答 2  元偷偷看……
kaixi
4楼-- · 2019-07-21 10:31
 精彩回答 2  元偷偷看……
kaixi
5楼-- · 2019-07-21 14:24
Acuity 发表于 2018-12-24 23:47
外部中断不好处理,会丢脉冲。另外在中断函数延时,大忌啊,还延时这么长。。。。
用定时器的正交编码功能 ...

试过用Stm32CubeMX配置了定时器的编码器模式。
因为现在用的编码器是定位为20,分辨能力是10P的。
转一次只会有上升沿或只会有下降沿。
kaixi
6楼-- · 2019-07-21 14:26
 精彩回答 2  元偷偷看……

一周热门 更多>