有关战舰串口if(USART_RX_STA&0x8000) { len=USART_RX_STA&0x3f;

2019-07-21 06:05发布

if(USART_RX_STA&0x8000) { len=USART_RX_STA&0x3f
USART_RX_STA中的定义的是u16 USART_RX_STA
USART_RX_STA&0x8000的结果是多少?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
阿拓
1楼-- · 2019-07-21 11:06
在串口中断里有一句:
                               else USART_RX_STA|=0X8000;
意思是如果接收完成,则将USART_RX_STA的最高位置1,所以USART_RX_STA&0X8000的值为非0,执行if下面的代码~
eling13
2楼-- · 2019-07-21 15:03
回复【5楼】雪梦my:
---------------------------------
额。在串口接收中断里。
745021926
3楼-- · 2019-07-21 17:18
USART_RX_STA&0x8000这一句是判断,判断是否接收完成,即接收到回车
那一季的花ゞ撒满忧伤
4楼-- · 2019-07-21 18:45
 精彩回答 2  元偷偷看……
eling13
5楼-- · 2019-07-22 00:09
回复【3楼】那一季的花ゞ撒满忧伤:
---------------------------------
是按位与计算啊。因为原子哥的代码里设置收到完整字符串包括 之后就会给USART_RX_STA最高位赋值1,
所以这按位与就是判断这个最高位是不是1,来判断有没有收到完整字符串的。
雪梦my
6楼-- · 2019-07-22 05:58
回复【4楼】eling13:
---------------------------------
在哪里可以看到  给USART_RX_STA最高位赋值1  这一串代码啊

一周热门 更多>