初级会员

- 积分
- 59
- 金钱
- 59
- 注册时间
- 2016-7-12
- 在线时间
- 17 小时
|
3金钱
请各位大神帮忙解决一个串口奇偶校验的问题?
串口初始化配置:
USART_InitStructure.USART_WordLength = USART_WordLength_9b;
USART_InitStructure.USART_Parity = USART_Parity_Even;//偶校验
串口接收中断:
if(USART_GetITStatus(UART4, USART_IT_RXNE) != RESET)
{
if(USART_GetFlagStatus(UART4, USART_IT_PE) != RESET)
{
USART_ClearFlag(UART4, USART_IT_PE);
USART_ClearITPendingBit(UART4, USART_IT_RXNE);
}
else
{
Res =USART_ReceiveData(UART4);//(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; //
}
else //
{
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;//
}
}
}
}
}
每次奇偶校验出错,都进if(USART_GetFlagStatus(UART4, USART_IT_PE) != RESET)里面,进不了else里面是怎么回事?
|
|