如何在没有 vsnprintf 的情况下编写 UART 函数

How Can I write UART function without vsnprintf

如何在没有 vsnprintf 或 args 的情况下使用 Serialdebug 函数。我只想使用

  HAL_UART_Transmit function to print my string.

而不是这个函数:

void Serialdebug(const char *serial_data, ...)
{
  char uartbuffer[1024]="";
  va_list arg;
  va_start(arg, serial_data);
  uint16_t len = vsnprintf(uartbuffer, 1024, serial_data, arg);
  va_end(arg);
  HAL_UART_Transmit(&huart2, (uint8_t *)uartbuffer, len, 100);

}

我该怎么做?

您基本上可以将函数简化为对 HAL_UART_Transmit:

的调用
void Serialdebug(const char *str)
{
    HAL_UART_Transmit(&huart2, (uint8_t *)str, strlen(str), 100);
}