按钮随机设置 LED 颜色
✅ 修改代码,使 RGB LED 灯在每次按下按钮时变为随机颜色。如果一段时间内未按下按钮,LED 不应熄灭或改变颜色。
你可以在先前的代码上继续修改,或者从 advanced/button-interrupt/src/main.rs
开始着手。
advanced/button-interrupt/examples/solution.rs
包含本练习的解答。可以用以下命令运行:
cargo run --example solution_led
💡 帮助信息
- 必要的 crate 都已经导入,你可以用
cargo --doc --open
查看 LED 的帮助文档。 - LED 的型号是 WS2812RMT。
- 这是一个可编程的 RGB LED。这意味着不存在单独的,用于设置红、绿、蓝的引脚。我们需要实例化它,然后才能发送
RGB8
类型的值给它。 - 这个板子有硬件随机数生成器,可以用
esp_random()
调用它。 - 从 Rust 的角度来看,调用
esp-idf-svc::sys
中的一些函数是 unsafe 的,并且需要unsafe()
块。不过你可以假设这些功能可以安全使用,不需要其他保护措施。