中级会员
 
- 积分
- 234
- 金钱
- 234
- 注册时间
- 2017-7-15
- 在线时间
- 16 小时
|
1金钱
if((USART_RX_STA&0x8000)==0)
{
if(USART_RX_STA&0x4000)
{
if(Res!=0x0a)USART_RX_STA=0;
}
else
{
if(Res==0x0d)USART_RX_STA|=0x4000;
else
{
USART_RX_BUF[USART_RX_STA&0X3FFF]=Res ;
USART_RX_STA++;
if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;
}
}
}
在串口函数Res是用来接收串口1的数据,那么Res是什么样的数据类型??if(Res!=0x0a)中,为甚么要不等于0x0a,0x0a是什么意思,在那里面可以找到其定义?,同样0x0d是代表什么意思?
USART_RX_STA|=0x4000;中USART_RX_STA为接收状态标志,其初值为0,为什么要与0x4000想与??该定义在那里找???
|
最佳答案
查看完整内容[请看2#楼]
这是例程里面定义的一个通讯协议,接收到的数据必须要以0x0d,0x0a结尾才认为有效,可以看看正点原子这个手册或视频这一部分的内容,讲解得很详细。
|