初级会员

- 积分
- 81
- 金钱
- 81
- 注册时间
- 2013-11-17
- 在线时间
- 9 小时
|
5金钱
void USART1_IRQHandler(void)
{
u8 Res;
if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET)
{
Res=USART_ReceiveData(USART1);
if((USART_Rx_State&0x80)==0) //判断是否完成,完成时USART_Rx_State=0x80;
{
if(USART_Rx_State&0x40)//判断接受到的数据是不是/n
{ //是
if(Res==0x0a) USART_Rx_State|=0x80;//判断第64个是不是换行0x0a ,是接受结束
else USART_Rx_State=0; //不是,接受错误,重新接受
}
else //不是存储到 USART_Rx_Buffer
{
if(Res==0x0d) USART_Rx_State|=0x40;
else
{
USART_Rx_Buffer[USART_Rx_State&0x3f]=Res;
USART_Rx_State++;
if(USART_Rx_State>63)USART_Rx_State=0;//判断下一次要接受的数据是不是第64,若是重新接受
}
}
}
}
}
(USART_Rx_State&0x80)==0为什么改成USART_Rx_State!=0x80就不行啊???求解
|
|