STM32使用问题总结

1.串口发送第一个字节丢失

问题代码

void USART1_SendBuf(uint8_t *pbuf , uint8_t len)
{
  for( uint8_t i = 0 ; i < len ; i++ )
  {
    /* 写一个字节到USART1 */
    USART_SendData(USART1, *pbuf++);
    /* 等待发送结束 */
    while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
    {}
  }
}


修正代码

void USART1_SendBuf(uint8_t *pbuf , uint8_t len)
{
  for( uint8_t i = 0 ; i < len ; i++ )
  {
    /* 写一个字节到USART1 */
    USART_SendData(USART1, *pbuf++);
    /* 等待发送结束 */
    while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET)
    {}
  }
}


你可能感兴趣的:(嵌入式ARM)