You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Zephyr中通过设备树配置RP Pico的UART1?

RP Pico在Zephyr中配置UART1的解决方案

为什么UART1未预定义?

Zephyr的RP Pico板级设备树默认只启用UART0——它是标准调试串口,适配多数用户的基础调试需求。UART1属于可选外设,不同用户可能需要映射到不同引脚,所以默认不做预定义,留由用户根据自身硬件需求自行配置。

配置UART1为可用状态的步骤

推荐使用设备树overlay文件(不修改Zephyr源码树,避免更新时丢失配置),也可以直接修改板级设备树文件,两种方法如下:

方法一:使用设备树Overlay(推荐)

  1. 在你的项目根目录下创建uart1_overlay.dts文件,内容如下(以P4作为UART1_TX、P5作为UART1_RX为例,可根据硬件布线替换成RP2040支持的其他UART1引脚):
/* 配置UART1的引脚复用 */
&pinctrl {
    uart1_default: uart1_default {
        group1 {
            pinmux = <UART1_TX_P4>;
        };
        group2 {
            pinmux = <UART1_RX_P5>;
            input-enable;
        };
    };
};

/* 启用并配置UART1 */
&uart1 {
    current-speed = <9600>; // 根据你的GPS传感器波特率调整,多数GPS默认是9600
    status = "okay";
    pinctrl-0 = <&uart1_default>;
    pinctrl-names = "default";
};
  1. 在项目的prj.conf中添加以下配置,让Zephyr加载这个overlay:
DTC_OVERLAY_FILE = "uart1_overlay.dts"

方法二:直接修改板级设备树文件(不推荐)

如果一定要修改Zephyr源码中的板级文件:

  1. 编辑zephyrproject/zephyr/boards/arm/rpi_pico/rpi_pico-pinctrl.dtsi,添加UART1的引脚复用配置:
uart1_default: uart1_default {
    group1 {
        pinmux = <UART1_TX_P4>;
    };
    group2 {
        pinmux = <UART1_RX_P5>;
        input-enable;
    };
};
  1. 编辑zephyrproject/zephyr/boards/arm/rpi_pico/rpi_pico-common.dtsi,添加UART1的启用配置:
&uart1 {
    current-speed = <9600>;
    status = "okay";
    pinctrl-0 = <&uart1_default>;
    pinctrl-names = "default";
};

注意事项

RP2040的UART1支持多组引脚映射,比如UART1_TX还可以是P8、P12,UART1_RX可以是P9、P13等,具体可参考RP2040官方数据手册中的引脚功能表,选择和你的硬件布线匹配的引脚。

内容的提问来源于stack exchange,提问作者Scharf_M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 17:13:18