串口试验中 为什么(USART_RX_STA&0x80)==0就表示没接收完成数据

2019-10-14 23:31发布

为什么 (USART_RX_STA&0x80)==0表示接收数据未完成; if(USART_RX_STA&0x40)//接收到了0x0d,,,,这里接收到0x0d又是什么意思? 请问有相关的资料吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
14884036
2019-10-15 13:21
回复【楼主位】stm32007:
---------------------------------
u8 USART_RX_BUF[64];     //接收缓冲,最大64个字节. 
//接收状态 
//bit7,接收完成标志  
//bit6,接收到0x0d 
//bit5~0,接收到的有效字节数目 
u8 USART_RX_STA=0;       //接收状态标记 
第七位,用来标记是否接收完成的标记,如果接收完成了就置1,如果没有,就是0. 
第六位,用来标识是否接收到0X0D,如果收到,就置1,否则为0. 
第5~0位,用来统计接收到的字符数,最大可以支持到64个字符. 


USART_RX_STA&0x80取USART_RX_STA最高位也就是bit7
USART_RX_STA&0x40取次高位也就是bit6

一周热门 更多>