GD32F103C的串口通信问题,缺少第一个数

串口发送代码如下,为什么串口通信助手接收到的总是缺第一个数

void Send(unsigned char send[], unsigned char k)
{
    int i;
      unsigned char send1[2];
    for(i=0;i<k;i++)
    {
      usart_data_transmit(USART0, send[i]);
      while (usart_flag_get(USART0, USART_FLAG_TC) == RESET);
    }
        while ((usart_flag_get(USART0, USART_FLAG_TBE) == RESET)&&(usart_flag_get(USART0, USART_FLAG_RBNE) == RESET));
        send1[i] = usart_data_receive(USART0);
}


检查一下tx端口初始状态。uart要求发送前串口处于空闲的状态,也就是高电平,然后检测到start信号之后开始接收处理。可能你的io初始状态就是低,导致接收端检测不到第一个字节的start信号,丢失了