stm32 串口收发数据不稳定问题

  用中断接收串口数据时,有时会存在串口接收数据错乱的问题,此时需要配置的时候为

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;
}
}

人活在这个世界上,只是为了死的时候比出生的时候更完美些。
原文地址:https://www.cnblogs.com/zhangxueling/p/6485736.html