完成串口初始化,之后再设置中断优先级。如果在这两个步骤间串口有数据传入,则单片机死机。
为了进一步测试,单独写了一段程序,用于测试串口2
程序非常简单,串口初始化完成后加入10S延时,在延时期间给串口发数据,10S后设置中断优先级。串口的中断服务函数是收到一个数据就发送出来,且在函数最后清除所有的中断标志位。如果单片机没有死机则完成中断优先级设置后进入循环,循环里面是闪LED。
现象是:每次都死机,死机后串口就一直发送同一个数据,从仿真看是死在中断函数里面。
猜想:STM32的其他外设也有同样问题。未测试。
|