UART

设备树文件

&usart1 {
	status = "okay";

  pinctrl-0 = <&usart1_tx_pa9 &usart1_rx_pa10>;
  pinctrl-names = "default";
	
  current-speed = <115200>;
};

配置文件

CONFIG_LOG=y

代码调用部分

#include <zephyr/device.h>
#include <zephyr/drivers/uart.h>
#include <zephyr/kernel.h>

void user_uart_entry() {
  const struct device* const uart_dev = DEVICE_DT_GET(DT_NODELABEL(usart1));
  unsigned char recv_char;

  if (!device_is_ready(uart_dev)) {
    return;
  }
  while (1) {
    char* init_str = "USART1 IO Ready. Speed: 115200\r\n";
    while (*init_str != '\0') {
      uart_poll_out(uart_dev, *init_str);
      init_str++;
    }

    k_sleep(K_SECONDS(1));
  }

  // Send the received bytes.
  // while (1) {
  //   if (uart_poll_in(uart_dev, &recv_char) == 0) {
  //     uart_poll_out(uart_dev, recv_char);
  //   }

  //   k_sleep(K_MSEC(1));
  // }
}

K_THREAD_DEFINE(tid_uart, 1024, user_uart_entry, NULL, NULL, NULL, 7, 0, 0);

Last modified: 2026-05-24