[mw_shl_code=c,true]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)//
{
if(Res!=0x0a)USART_RX_STA=0;//
else USART_RX_STA|=0x8000; // 1000 0000 0000 0000
}
else //????????0X0D
{
if(Res==0x0d)USART_RX_STA|=0x4000; // 0100 0000 0000 0000
else
{
USART_RX_BUF[USART_RX_STA&0X3FFF]=Res ;
USART_RX_STA++;
if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;
}
}
}
} [/mw_shl_code]
这是 原子的串口范例程序 ,一直对其中几个地方没有弄明白,特发此贴望高手指点指点
[mw_shl_code=c,true]USART_RX_STA&0x8000 :
[mw_shl_code=c,true]USART_RX_STA 是自定义的一个状态标识 初始化为0 。 不知道USART_RX_STA &0X8000 为啥意思。[/mw_shl_code]
[mw_shl_code=c,true]同理 USART_RX_STA&0x4000 也一样。 [/mw_shl_code]
[mw_shl_code=c,true]这是计算接收数目吗?[/mw_shl_code]
[/mw_shl_code]
|