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

如何在Rust项目中配置树莓派Pico的非标准UART引脚?

在Rust rp2040-project-template中修改UART引脚配置

核心思路

Rust生态下的RP2040开发依赖rp-hal系列库,无需直接使用C的pico.h,直接在代码中重新指定UART引脚即可完成配置。

具体操作步骤

  1. 定位UART初始化代码
    模板中的日志输出(比如基于defmt或panic-probe的日志)默认绑定在UART0的引脚1(TX)和引脚2(RX)上。你需要在src/main.rs或独立的uart.rs模块中找到初始化UART的代码段。

  2. 重新指定UART引脚
    假设你打算将UART0的TX改到引脚16、RX改到引脚17,参考以下代码修改:

    use rp_pico::hal::{gpio::Pins, uart::UartPeripheral};
    
    fn setup_uart(pins: Pins) -> UartPeripheral<uart::Uart0> {
        // 绑定新的UART引脚,释放GPIO1和GPIO2
        let uart_pins = (
            pins.gpio16.into_mode::<rp_pico::hal::gpio::FunctionUart>(), // 新TX引脚
            pins.gpio17.into_mode::<rp_pico::hal::gpio::FunctionUart>(), // 新RX引脚
        );
    
        // 初始化UART0,波特率保持与Picoprobe一致的115200
        let mut uart = rp_pico::hal::uart::UartPeripheral::new(
            pac.UART0,
            uart_pins,
            rp_pico::hal::clock::Clock::system_clock.freq(),
        )
        .unwrap();
    
        // 开启UART读写功能
        uart.enable_rx();
        uart.enable_tx();
    
        uart
    }
    
  3. 更新日志输出绑定
    如果模板使用UART输出日志,修改完UART初始化后,确保日志的输出载体替换为新初始化的UART实例。比如调用日志宏时:

    defmt::info!("日志已切换到新UART引脚!");
    
  4. 验证配置有效性

    • 重新编译并烧录固件到Pico开发板
    • 将Picoprobe的TX/RX引脚交叉连接到你指定的新引脚(Picoprobe TX接Pico RX,Picoprobe RX接Pico TX)
    • 打开终端工具确认日志正常输出,同时GPIO1和GPIO2已可用于其他功能开发

注意事项

  • 选择的引脚必须支持UART功能(参考RP2040数据手册的引脚功能表,挑选带有UART0/1 TX/RX标识的引脚)
  • 若使用UART1而非UART0,只需将代码中的UART0替换为UART1,并对应选择支持UART1的引脚
  • 确保UART波特率与Picoprobe配置一致(默认115200)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 13:57:15