新手入门
- 积分
- 21
- 金钱
- 21
- 注册时间
- 2015-8-24
- 在线时间
- 0 小时
|
发表于 2015-8-25 17:43:23
|
显示全部楼层
回复【5楼】Man Dsan:
---------------------------------
#if EN_USART1_RX //??????????????
void USART1_IRQHandler(void) //????1????·??????ò
{
u8 Res;
#ifdef OS_TICKS_PER_SEC //?????±?????????¨????,???÷??????ucosII??.
OSIntEnter();
#endif
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //????????(????????????±?????0x0d 0x0a?á??)
{
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;//?????????í?ó,????????????
}
}
}
}
#ifdef OS_TICKS_PER_SEC //?????±?????????¨????,???÷??????ucosII??.
OSIntExit();
#endif
}
#endif
上面的程序有点看不懂,能解释一下呗,谢谢。 |
|