工具/软件:Code Composer Studio
我有一个 UART ISR...在接收部分,我递增计数器,然后从 LPM3唤醒以进行处理,然后进入睡眠状态并等待下一个传入的 Rx 数据..... 我 有一个逻辑分析仪连接到数据流(TX 和 Rx)并对其进行监控...我的第一个 Rx 流进入为"ER_CMD#P9"... 我看到两个奇怪的结果:
1. 如果我在 __BIC_SR_REGISTER_ON_EXIT (LPM3_BITS)上放置一个断点;在 Rx ISR 内,第一次通过计数器读取1,但我的 RXBUFFER 寄存器显示9? 这是复位后、这是我在代码中接收的唯一内容。 这是怎么可能的?
2. 在 main 内、我进入睡眠状态、然后等待从 Rx ISR 唤醒、此时我有命令
IF (UCA1IFG 和 UCRXIFG){
在这里、我做的第一件事是读取 RXBUFFER。 首先、这里有两个问题、我从未在这个问题中遇到过、这似乎意味着第二个问题、根据用户指南、您清除 IFG 的方法是读取 RXBUFFER、但它似乎可以通过进入和退出 ISR 而不执行操作来自行清除 正在读取缓冲区...... 请评论??
谢谢