STM8串口UART调试记录

  本来UART的调试是非常简单的,但是在STM8上折腾了好几天,在此记录一下,希望遇到相同问题的朋友能够不折腾,工作顺利,生活开心!

       问题描述:

  使用STM8的UART1,波特率9600,发送中断关闭,接收中断打开。接收单字节,没有问题。接收多字节,接收数据不完整,而且每次丢失的字节个数固定,比如发送17个字节,每次都只能接收到到15个字节。

     折腾过程:

  1.按照网友说的如下,结果还是出现丢失数据。

if(UART1_GetITStatus(UART1_IT_RXNE) != RESET)

{

  temp = UART1_ReceiveData8();

}

 2.添加处理过载时发生中断的处理,任然还是出现丢失数据。

 

解决办法:

  先读取数据,再清理中断。完事就是这么简单。

void MCU_UartInterruptISR(void)
{

UARTRxData.rxData[UARTRxData.nBytes] = UART1_ReceiveData8();

UART1_ClearFlag(UART1_FLAG_RXNE);
}

posted @ 2020-04-26 11:21  xiaokangkp  阅读(717)  评论(0编辑  收藏  举报