做步进电机输出脉冲时比较输出脉冲数不准该如何解决?

2019-07-14 18:20发布

各位师傅,我在做步进电机输出脉冲时采用的比较翻转输出,停止是用tiM_Cmd(TIM2,DISABLE);指令,但是发现执行停止计数函数以后约0.5秒的时间内还是有脉冲输出,造成停止位不准确,不知道是什么原因,我看了这个函数就是直接操作TIMx->CR1 &= (uint16_t)(~((uint16_t)TIM_CR1_CEN));
我试了直接操作但还是有延时输出的问题,不知道各位碰到过没有,是如何解决的,谢谢。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
爱雪爱雪
1楼-- · 2019-07-14 23:26
指令执行是需要时间周期的,在还没有执行完指令的时候,是会输出脉冲的。
我觉得可以适当修改下定时器计数值,使脉冲符合要求就可以了
rnr15483586
2楼-- · 2019-07-15 03:25
楼主定时时间是不是太长了,定时太长了容易出现误差。
小佳99
3楼-- · 2019-07-15 09:13
库函数的时延应该不会那么大,应该不是库函数的原因,找找其他原因
Wu雨雨雨
4楼-- · 2019-07-15 12:44
 精彩回答 2  元偷偷看……
雨小了111
5楼-- · 2019-07-15 15:01
建议你将程序仔细看看,然后单步调试,可能是你的调试手段有问题。如果不行就使用逻辑分析仪来数数脉冲数量,是否符合你的设计。问题的最大可能原因是你的设计由问题。另外你可以考虑通过停止定时器的方式来看看,而不是停止比较。
Wu雨雨雨
6楼-- · 2019-07-15 17:13
我用比较翻转主要是不占用片上的资源,这个问题比较怪。

一周热门 更多>