void USART2_IRQHandler(void)
{
u8 Res;
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)
{
Res =USART_ReceiveData(USART2);
if((USART2_RX_STA&0x8000)==0)
{
if(USART2_RX_STA&0x4000)
{
if(Res!=0x0a)USART2_RX_STA=0;
else USART2_RX_STA|=0x8000;
}
else
{
if(Res==0x0d)USART2_RX_STA|=0x4000;
else
{
USART2_RX_BUF[USART2_RX_STA&0X3FFF]=Res ;
USART2_RX_STA++;
if(USART2_RX_STA>(USART2_REC_LEN-1))USART2_RX_STA=0;
}
}
}
}
我想问的就是上面几行红线的句子是什么含义?为何0X0D与0x0A代表回车换行以后,上面的句子就能判断接收有没有完成和接收错误?还有USART2_RX_STA刚开始不就被赋值为0了吗,它又是怎么变化的?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
等着用呢,原先没怎么注意这一段,现在才发现看不懂
一周热门 更多>