STM32使用定时器输入捕获测量转速遇到奇怪的现象

2019-12-11 18:31发布

最近做了一个转速测量,因为使用的是霍尔传感器,转一圈只有1个脉冲,所以用的STM32的输入捕获来采集定时器的时间。
采集2次做一个差值,得到转一圈的时间,进而得到转速。
那么问题来了,由于霍尔传感器的安装问题,用示波器看波形,输入的脉冲并不是均匀的。正常的时候应该是400ms一个脉冲,但是经常是连续2-3个脉冲后,下一个脉冲会间隔2000ms或者一个比较大的时间
才会出现。然后这样的情况还挺多,最后就是整体脉冲不均匀。

按照程序设计,400ms和2000ms的间隔,我程序的变量计数应该是区别几倍的区别。但是我用J-scope来查看这个变量的波形的时候,最后看到的几乎是一条直线。
按照最大最小值计算出来,误差最大也就2.5ms。这和实际波形不符合啊。这个j-scope采集数据说的是频率50HZ,应该远远超过我的数据变化,应该是不会漏掉的啊。

有没有人遇到过类似的情况可以来说两句的,谢谢。下面是实际波形。
1556429075(1).jpg (170.65 KB, 下载次数: 0) 下载附件 2019-4-28 13:25 上传
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
20061002838
1楼-- · 2019-12-11 20:24
此时你就需要uc/PROBE 或者RTT了,采集原始数据,捕获时间,时间差值,脉冲差值这些,分析看是哪里出了问题
或者程序可以暂停的话,直接把上述原始数据放到一个大数组里面,进调试界面查看
蛋定
2楼-- · 2019-12-12 00:20
我遇到采样检测的问题,从中断改为定期采样去抖后,可以了。
w282529350
3楼-- · 2019-12-12 01:50
 精彩回答 2  元偷偷看……
honami520
4楼-- · 2019-12-12 04:56
w282529350 发表于 2019-4-28 14:35
先证明一下变量到底变化大不大吧

就是变化不大才会问的,和设计不符合
XIE2099
5楼-- · 2019-12-12 05:03
用的是哪种霍尔,H41吗
XIE2099
6楼-- · 2019-12-12 07:06
这个要用双极性的,用双磁铁或者现成的磁环

一周热门 更多>