#bare-metal #esp32 #board #packages #embassy #focus #async

esp-bsp

Rust 用于 ESP32 相关板子的裸机板级支持包,重点在于 Embassy 异步

2 个不稳定版本

0.2.0 2024 年 1 月 30 日
0.1.0 2024 年 1 月 18 日

#613 in 嵌入式开发

MIT/Apache

9KB
119

ESP-BSP-RS

Rust 用于基于 ESP32 的板子的裸机板级支持包,重点在于 Embassy 异步

板子列表

旧板子

这些板子由该包支持,但建议不要用于新项目

  • ESP32-S3-BOX - 硬件已停产 - 已由 ESP32-S3-BOX-3 替换

使用方法

cargo add esp-bsp

显示配置

用于主函数的 PIN 配置代码

use esp_bsp_rs::lcd_gpios;

let io = IO::new(peripherals.GPIO, peripherals.IO_MUX);
let (lcd_sclk, lcd_mosi, lcd_cs, lcd_miso, lcd_dc, _lcd_backlight, lcd_reset) = lcd_gpios!(BoardType::ESP32C6DevKitC1, io);

Rust Embassy 任务的配置代码

#[cfg(feature = "esp32_c6_devkit_c1")]
type AppDisplay = define_display_type!(BoardType::ESP32C6DevKitC1);
#[cfg(feature = "m5stack_cores3")]
type AppDisplay = define_display_type!(BoardType::M5StackCoreS3);
#[cfg(feature = "esp32_s3_box")]
type AppDisplay = define_display_type!(BoardType::ESP32S3Box);

#[embassy_executor::task]
pub async fn app_loop(mut display:AppDisplay)

如果您打算使用建议的功能,请在 Cargo.toml 中添加类似的配置

[dependencies]
esp32-hal = { version = "0.17.0", optional = true, default-features = false, features = ["embassy", "async", "embassy-time-timg0", "rt", "embassy-executor-thread"] }
esp32s2-hal = { version = "0.14.0", optional = true, default-features = false, features = ["embassy", "async", "embassy-time-timg0", "rt", "embassy-executor-thread"] }
esp32s3-hal = { version = "0.14.0", optional = true, default-features = false, features = ["embassy", "async", "embassy-time-timg0", "rt", "embassy-executor-thread"] }
esp32c3-hal = { version = "0.14.0", optional = true, default-features = false, features = ["embassy", "async", "embassy-time-timg0", "rt", "embassy-executor-thread"] }
esp32c6-hal = { version = "0.7.0", optional = true, default-features = false, features = ["embassy", "async", "embassy-time-timg0", "rt", "embassy-executor-thread"] }
esp32h2-hal = { version = "0.5.0", optional = true, default-features = false, features = ["embassy", "async", "embassy-time-timg0", "rt", "embassy-executor-thread"] }

[features]
esp32 =   [ "esp32-hal" ]
esp32s2 = [ "esp32s2-hal" ]
esp32s3 = [ "esp32s3-hal" ]
esp32c3 = [ "esp32c3-hal" ]
esp32c6 = [ "esp32c6-hal" ]
esp32h2 = [ "esp32h2-hal" ]

esp32_c6_devkit_c1 = [ "esp32c6" ]
esp32_s3_box = [ "esp32s3", "esp32s3-hal/opsram-8m" ]
m5stack_cores3 = [ "esp32s3", "esp32s3-hal/psram-8m" ]

变更日志

0.2.0

  • 重命名

无运行时依赖