1、STM8用UART2_SendData8(uint8_t Data)函数发送数据时,数据会丢失,因为库函数没有判读是否发送完成;

2、寄存器修改如下:

STM8串口UART2_SendData8函数连续发送数据丢失

 

void UART2_SendData8(uint8_t Data)
{
    /* Transmit Data */
    unsigned int max_delay =0;
    UART2->DR = Data;
        while(1)
      {
            if((UART2->SR &0X40) != 0)break;
            max_delay++;
            if(max_delay > 10000)break;
        }
}

 

2、库函数修改如下:

STM8串口UART2_SendData8函数连续发送数据丢失

    for(cnt =0; cnt < sizeof(Tx_buff); cnt ++)
    {
        max_delay = 0;
        UART2_SendData8(Tx_buff[cnt]);
        while((UART2_GetFlagStatus(UART2_FLAG_TC) == 0))  //判断发送完成标志
        {
            max_delay ++;    
            if(max_delay > 10000)
            {
                break;        //等待超时退出等待发送标志
            }
        }
    }

相关文章:

  • 2021-06-07
  • 2022-01-28
  • 2021-11-12
  • 2022-12-23
  • 2022-02-12
  • 2022-01-08
  • 2022-01-15
  • 2022-12-23
猜你喜欢
  • 2021-12-30
  • 2021-12-09
  • 2022-12-23
  • 2022-01-26
  • 2022-02-08
  • 2021-10-23
相关资源
相似解决方案