新人提问,知道的帮一下兄弟

2019-07-21 04:00发布

哪位仁兄帮忙解决一下我标注的位置为什么是这样
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
augustedward
2019-07-22 07:49
回复【8楼】黑小莓:
---------------------------------
//接收状态
//bit15, 接收完成标志
//bit14, 接收到0x0d
//bit13~0, 接收到的有效字节数目
u16 USART_RX_STA=0;       //接收状态标记

相当于一个状态寄存器。最高位bit15位为1表示接收完成,为0表示未接收完成。
USART_RX_STA&0x8000怎么能是1&0x8000呢。
if()语句,里面只要为真就执行,不一定必须是1才执行啊。
当接收完成时,USART_RX_STA的最高位为1,其他位可能为1也可能为0。
但比较的是最高位,所以就用USART_RX_STA&0x8000进行比较,屏弊掉其他位。

一周热门 更多>