初级会员

- 积分
- 185
- 金钱
- 185
- 注册时间
- 2017-6-19
- 在线时间
- 90 小时
|
记录自己对于串口服务函数的理解- if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //如果USART_IT_RXNE,说明接收到了数据
- {
- Res =USART_ReceiveData(USART1); //读取接收到的数据
-
- if((USART_RX_STA&0x8000)==0)//该判断一定成立,因为0&任何数结果都是0
- {
- if(USART_RX_STA&0x4000)//如果接收到了回车
- {
- if(Res!=0x0a) //如果没有接收到换行
- USART_RX_STA=0; //接收错误,重新开始接收
- else //如果接收到换行
- USART_RX_STA|=0x8000; //接收完成了,USART_RX_STA=0x8000 -->1000 0000 0000 0000
- }
- else //如果没接收到回车
- {
- if(Res==0x0d) //如果接收到换行
- USART_RX_STA|=0x4000; //USART_RX_STA=0x4000 ---->0100 0000 0000 0000
- else //如果没接收到换行
- {
- USART_RX_BUF[USART_RX_STA&0X3FFF]=Res ;//把接收到的数据保存在数组里面
- USART_RX_STA++;//USART_RX_STA自加
- if(USART_RX_STA>(USART_REC_LEN-1))//如果接受到数据大于最大字节USART_REC_LEN
- USART_RX_STA=0;//接收数据错误,重新开始接收
- }
- }
- }
- }
复制代码
|
|