昨天在程序里增加了个新功能,
为了图方便,
在USART1的中断处理函数USART1_IQR中,
嵌套了段功能函数A_Function,
其中功能函数A_Function中有一段是循环等待USART2的中断处理函数USART2_IQR将指令接收标志S1_Flag置位。
这个功能一直没有调通,因为发现S1_Flag一直没有置位。
后来,把功能函数A_Function不再放到USART1_IQR,而放到Main程序中的while(1)里面,发现S1_Flag能正常接收了。
一开始没想明白,后来和同事聊了聊这个,边说才想起来这涉及了中断嵌套问题。
当使用嵌套中断时,必须保证USART2的中断优先级高于USART1,不然的话,会出现在进入USART1中断后,USART2无响应的情况。