我这两天用stm32做电机控制,
中间有用到扭矩传感器。
就是需要测频率,根据换算关系得到扭矩。
我用的捕获方式,捕获每个周期的电平。
刚开始的时候,信号挺稳定的,读的数据也准确。
我把步进电机驱动器一打开,数据就各种异常,
逻辑分析仪测了一下,觉得不行
于是加了一些信号调理电路,之后再测,看起来波形是没有问题的了:(上下行对比)
示波器是这样的
看波形没什么问题了,但是捕获出来的值就是各种不正常。
正常是100us,实际会突然跳到50或者150这么大范围。
想了很多办法也不行了,就突然发现了TIM4_ICInitStructure.TIM_ICFilter这个设置把它从0x00改到了0x0f,之后数据就正常了。
网上查了一下,也没有查到是怎么工作的,
因为我一直用库函数,感觉不是很理解究竟是操作了哪个寄存器,是怎么实现的。
现在问题虽然已经解决了,但是还是想知道这个是设置了什么呀?
求用过的分享一下心得
一周热门 更多>