TIM1高级定时器互不输出,遇到一个很奇怪的问题,求助

2019-07-21 06:05发布

写的无刷电机程序,如题,今天突然发现了一个问题。我初始化TIM1后,如果6路互补一块输出,没有问题,波形很正确,如果我改成两路两路的输出,就会出现一个问题。下图中,主函数中有个test函数,加了这个test函数就输出正常,不加,输出就不正常,关键这个test里只有一个初始化的一个函数,并且随便初始化哪个IO口都可以使得波形输出正常,然后不加这个函数就输出不正常了,并且这个函数必须放在这个位置,把这个函数拆开都不行,感觉很奇怪,请大神们指点一下,哪里出问题了。
定时器1的初始化函数,基本没问题的 定时器1的初始化函数,基本没问题的
初始化,应该没什么大问题。
main函数,整体就是定时器1初始化,然后开始输出两路PWM main函数,整体就是定时器1初始化,然后开始输出两路PWM
这里就是这个test很奇怪,没有这个test输出就不正常,有test就正常。
这个test函数中就只有这个,没有这个输出就不正常 这个test函数中就只有这个,没有这个输出就不正常
这就是test里做的事,我又在TIM1初始化的时候,专门加了这两句,也不行,然后又加了definit也不行
输出两路PWM后,延时一段时间,在换另两路PWM输出 输出两路PWM后,延时一段时间,在换另两路PWM输出
输出两路,然后延时,然后换相
换相顺序 换相顺序
换相顺序程序
不正常波形整体体现 不正常波形整体体现
这就是有问题的波形,红线框起来的地方,本来应该没有延时的,但是现在延时竟然有1ms左右,而且上面的那个红框中,不应该出现波形,而是高电平的,如下图所示。
局部有问题 局部有问题
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。