debug时候遇到比较奇怪的问题,简化描述如下:语句如下时,PWM可以正常输出,且单步调试时,只要执行完pwm_init(&PWM1)就产生了PWM。
pwm_init(&PWM1);
while(1);
然而改成如下语句时,PWM不能输出,且单步调试时,执行完pwm_init(&PWM1)也不产生PWM。
pwm_init(&PWM1);
某语句;
while(1);
感到很奇怪的是,只是在初始化PWM后加了条语句而已,不管是不是加的语句影响了PWM,至少pwm_init(&PWM1);之前的语句是一模一样的,为什么单步调试时执行完初始化后却是不同的结果?
记得以前看到过类似的帖子,好像是说编译器编译时把指令放在了不同位置导致的bug,感觉可能是这个原因。
求前辈分析一下可能的原因,及解决方法,谢谢! |