返回
探索 esp32c3 单片机与 Rust 语言的趣味交互:打造 LED 按钮控制系统
闲谈
2024-01-26 01:49:29
在上一篇中,我们成功点亮了 esp32c3 单片机的板载 LED。现在,我们将更进一步,通过一个按钮来控制 LED 的亮灭。
-
硬件准备
- esp32c3 开发板
- 面包板
- 跳线
- 按键
- 10kΩ 电阻
-
原理图及代码
参考下图原理图连接好电路。
[原理图]
在 esp32c3 的 Rust 代码中,我们需要添加对 GPIO 输入/输出功能的支持。首先,我们需要在
Cargo.toml
文件中添加以下依赖项:[dependencies] esp32c3-hal = "0.5.0"
然后,我们在
main.rs
文件中添加以下代码:use esp32c3_hal::{ clock, gpio::{Gpio3, Input, PullUp}, pac, prelude::*, }; fn main() -> ! { let peripherals = pac::Peripherals::take().unwrap(); let clocks = clock::ClockControl::configure( peripherals.FRC_輕觸按鈕, peripherals.apb_clk, clock::mhz(80), clock::mhz(80), ); let mut button = Gpio3::new(peripherals.GPIO3, Input::PullUp); loop { if button.is_low() { // LED 开启 } else { // LED 关闭 } } }
这段代码首先初始化了时钟和 GPIO 引脚。然后,我们进入了一个无限循环,不断检查按钮的状态。如果按钮被按下(即电平为低),我们就打开 LED;如果按钮没有按下(即电平为高),我们就关闭 LED。
-
编译和烧录
使用以下命令编译并烧录代码:
cargo build cargo run --release
-
测试
将 esp32c3 开发板连接到计算机,打开串口终端,然后按下按钮。您应该会看到 LED 亮起或熄灭,具体取决于按钮的状态。
-
结语
通过这个项目,我们学习了如何使用 Rust 语言编程 esp32c3 单片机,并构建了一个简单的按钮控制 LED 的交互系统。我们还了解了 GPIO 输入/输出功能、事件驱动编程以及 Rust 语言的强大之处。希望这个项目对您有所帮助,也希望您能继续探索 Rust 语言和嵌入式开发的世界。