67 个版本
0.44.1 | 2024年7月9日 |
---|---|
0.43.1 | 2024年2月22日 |
0.42.5 | 2023年11月12日 |
0.41.2 | 2023年6月21日 |
0.1.2 | 2019年8月7日 |
在 嵌入式开发 中排名 58
每月下载量 13,330
在 29 个 Crates 中使用(直接使用 19 个)
725KB
16K SLoC
为 ESP IDF SDK 中的驱动程序提供安全的 Rust 包装器
亮点
- 实现了 embedded-hal
V0.2
和V1.0
的 trait,包括阻塞和异步 - 支持几乎所有 ESP IDF 驱动程序:GPIO、SPI、I2C、TIMER、PWM、I2S、UART 等
- 每个驱动程序的阻塞和
async
模式(正在开发异步支持) - 将
esp-idf-sys
重新导出为esp_idf_hal::sys
您还可以查看 ESP IDF 的 服务 包装器和在 esp-idf-sys
crate 中的 ESP IDF 原始绑定!
(对于裸机 Rust ESP 项目,请检查 esp-hal
。)
构建先决条件
遵循 esp-idf-template
crate 中的 先决条件 部分。
示例
可以使用 cargo-espflash
方便地构建和烧录示例。例如,在 ESP32-C3 上运行 ledc_simple
:(将 Rust 目标和示例名称与您的 ESP32 MCU 相对应的目标以及您要构建的示例进行交换)
使用 cargo-espflash
$ MCU=esp32c3 cargo espflash flash --target riscv32imc-esp-espidf --example ledc_simple --monitor
MCU | "--target" |
---|---|
ESP32-C2 | riscv32imc-esp-espidf |
ESP32-C3 | riscv32imc-esp-espidf |
ESP32-C6 | riscv32imac-esp-espidf |
ESP32-H2 | riscv32imac-esp-espidf |
ESP32-P4 | riscv32imafc-esp-espidf |
ESP32 | xtensa-esp32-espidf |
ESP32-S2 | xtensa-esp32s2-espidf |
ESP32-S3 | xtensa-esp32s3-espidf |
为了在其他芯片上运行示例,您可能需要至少调整所使用的引脚。
使用ESP IDF设置"Hello, world!"二进制crate
使用esp-idf-template
项目。所有设置和构建工作将自动完成 - 您无需手动克隆ESP IDF仓库。
更多信息
有关更多信息,请参阅以下内容:
- Rust on ESP 书籍
- ESP嵌入式培训
esp-idf-template
项目embedded-hal
项目esp-idf-svc
项目embedded-svc
项目esp-idf-sys
项目- Rust for Xtensa工具链
- Rust-with-STD演示项目
硬件说明
每个芯片都有一些GPIO引脚,通常由SPI0和SPI1外设使用,以连接外部PSRAM和/或SPI闪存。数据表明确指出,不建议使用这些引脚,但为了完整性,此crate仍然包括它们。
请参考下表以确定不建议使用的引脚。
芯片 | GPIOs |
---|---|
ESP32 | 6 - 11, 16 - 17 |
ESP32-C2 | 12 - 17 |
ESP32-C3 | 12 - 17 |
ESP32-C6 | 24 - 30 |
ESP32-H2 | 15 - 21 |
ESP32-S2 | 26 - 32 |
ESP32-S3 | 26 - 32, 33 - 37* |
* 当使用八位闪存和/或八位PSRAM时
依赖项
~4–13MB
~147K SLoC