This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

430死掉

Other Parts Discussed in Thread: MSP430F149

使用MSP430F149控制直流电机,同事外部中断采集电机转的圈数,利用串口控制电机正反转,串口命令发送太快,单片机会死掉,必须重新启动才能正常运行,这是怎么回事?程序中用到串口中断,外部中断,定时器2中断,定时器1产生两路PWM波。

  • 是不是您的中断函数耗时太长或过于频繁,导致程序刚出中断又进入中断?可有可能导致程序一直在中断中执行,回不到主函数。

  • 1. 首先 需要确定 程序 是进入了 死循环  还是跑飞了。  这是两个完全不同的概念

    2. 可以 在程序中 加入看门狗,定时喂狗,防止程序跑飞

    3. 如果还不行,就是说程序 写的逻辑有问题,导致程序其实是正常的,但是进入了死循环。  想要的效果没有完成~~

  • 看门狗被我禁止了,但是,发送串口发送命令慢的情况下,不会出现这种情况。

  • 中断耗时不长,但是进入中断是比较频繁,因为检测电机的编码器要不停的进入中断,定时器中断也是频繁进入,这时候如果串口发送周期太短,就会出现串口不能接收命令,但是定时器好像还在运行。把定时器关掉后,就不会出现这种情况。

  • 程序逻辑有问题,还有一点,不要在中断中 做过多的事情,就是一个触发,一个置位,把要做的事情都放在主函数循环中完成。