该程序将通过UART0
上的KL25Z
从主机PC接收一个字节。数据从数据寄存器D
获取并分配给变量c
。然后由c
的每个位的值控制,三色LED被减轻。该程序运行良好,没问题。
当Keil进入“调试会话”时,我设置了一个断点来观察c
和UART0->D
。
[code][1]
[watch c][2]
在PC上从终端仿真器软件发送一个字节后,程序在断点处停止为RDRF
(接收数据寄存器已满)标志。此时,可以观察到数据寄存器中的数据为0x61
,这是字母'a'的ascii代码,变量c
中没有值。
[UART0_D][3]
[watch c][4]
如果步进一行,变量c
应该等于0x61
。但是,结果是c
为0
并且数据寄存器已清空。由于c
为0
,因此LED不会被点亮。我不明白为什么?
[UART0_D][5]
[watch c][6]
调试设置如下。
[debugger selection][7]
[debugger settings][8]
我缺少10个声望点,发布超过2个链接。相关图像附在此处。很抱歉给您带来不便。
感谢。