初级会员

- 积分
- 104
- 金钱
- 104
- 注册时间
- 2015-5-23
- 在线时间
- 8 小时
|
5金钱
输入回车不是一定会换行吗,为什么说没有接收到换行就接收错误呢?
void USART1_IRQHandler(void)
{
u8 Res;
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
{
Res =USART_ReceiveData(USART1);//(USART1->DR);
if((USART_RX_STA&0x8000)==0)//???????ê??
{
if(USART_RX_STA&0x4000)//????????0x0d
{
if(Res!=0x0a)USART_RX_STA=0
else USART_RX_STA|=0x8000;
}
else //????????0X0D
{
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;//
}
}
}
} |
最佳答案
查看完整内容[请看2#楼]
这个问题估计这是第99999999999999999个人问了
0D 0A是回车键的ASCII码,在windows超级终端里一般都是以回车结尾,回车键是两个ASCII码组成,这就是是判断数据帧结束的标志
|