GD32F310+keil4能进串口接收中断,查看uart0寄存器时RBNE一直为0
调试Cortex-M4芯片的uart0接收中断时遇到了RBNE寄存器问题。RBNE本应在数据接收时为1,触发中断,但查看时一直为0。这表明可能是在调试过程中Keil自动读取寄存器导致RBNE被清除。解决方法包括在代码中添加调试语句记录寄存器状态,验证中断服务程序是否正确读取数据,以及检查uart配置和中断优先级设置。此外,确保时钟和引脚配置正确,排除其他中断干扰。通过逐步排查,可以确定问题根源并修复uart0接收功能。
调试GD coetex-M4芯片时发现打开串口接收中断后,能进中断,但通过keil4中查看uart0的STAT寄存器时,RBNE一直为0。实际应该为1的话,才能进中断。
- 接收数据前
STAT寄存器地址为0x4001381C
此时RBNE=0 - 接收到一个数据,进中断后
此时RBNE=1
3.读取RDATA寄存器中数据后
此时RBNE=0
4.说明
在keil调试时串口时,如果实时查看会导致keil自动读取寄存器值时导致其中一些寄存器自动改变值。