用中断接收串口数据时,有时会存在串口接收数据错乱的问题,此时需要配置的时候为
uint8 u8Data;
if ( USART_GetITStatus(USART1,USART_IT_RXNE) == SET )
{
USART_ClearITPendingBit(USART1,USART_IT_RXNE); //实际测试,先清除后存在,效果很好
u8Data=USART_ReceiveData(USART1);
if (bUsart1ReFlag == 0)
{
g_s8RxDebugBuf[u8RxDebugLength++]=u8Data;
}
if(u8RxDebugLength > 127) /* 防止数据过多 */
{
u8RxDebugLength = 0;
}
else if( (g_s8RxDebugBuf[u8RxDebugLength-1]==0x0a)&& /* 结束标识 */
(g_s8RxDebugBuf[u8RxDebugLength-2]==0x0d) )
{
bUsart1ReFlag = 1;
}
}
时间: 2024-11-10 00:11:41