Raspberry Pi Pico 2 板载 LED 闪烁

当你开始进行嵌入式编程时,通用输入输出(GPIO)是你首先会接触的外设。“通用输入输出”顾名思义:我们可以将其用于输入和输出。作为输出,Pico 可以发送信号来控制 LED 等组件。作为输入,按钮等组件可以向 Pico 发送信号。

在本练习中,我们将通过向板载 LED 发送信号来控制它。如果你查看 Pico 2 数据手册的第 8 页,你会看到板载 LED 连接在 GPIO 引脚 25 上。

我们将 GPIO 引脚 25 配置为输出引脚,并将其初始状态设置为低电平(关闭):

#![allow(unused)]
fn main() {
let mut led = Output::new(peripherals.PIN_25, Level::Low);
}

大多数代码编辑器(如 VS Code)都有快捷键可以自动为你添加导入。如果你的编辑器没有此功能或者你遇到了问题,可以手动添加这些导入:

#![allow(unused)]
fn main() {
use embassy_rp::gpio::{Level, Output};
}

闪烁逻辑

现在,我们将创建一个简单的循环让 LED 闪烁。首先,我们通过在 GPIO 实例上调用 set_high() 函数来打开 LED。然后我们使用 Timer 添加一个短暂的延迟。接下来,我们使用 set_low() 关闭 LED。然后我们再添加一个延迟。这就产生了闪烁效果。

让我们将 Timer 导入到我们的项目中:

#![allow(unused)]
fn main() {
use embassy_time::Timer;
}

这是闪烁循环代码:

#![allow(unused)]
fn main() {
loop {
    led.set_high();
    Timer::after_millis(250).await;

    led.set_low();
    Timer::after_millis(250).await;
}
}