Crates.io | esp-bsp |
lib.rs | esp-bsp |
version | 0.2.0 |
source | src |
created_at | 2024-01-18 09:06:13.568283 |
updated_at | 2024-01-30 15:56:14.413524 |
description | Rust Bare Metal Board Support Packages for ESP32 related boards with focus on Embassy Async |
homepage | |
repository | https://github.com/georgik/esp-bsp-rs |
max_upload_size | |
id | 1103989 |
size | 20,359 |
Rust Bare Metal Board Support Packages for ESP32 based boards with focus on Embassy Async
These boards are supported by the package, but it is not recommended to use them for new projects:
ESP32-S3-BOX - HW discontinued - replaced by ESP32-S3-BOX-3
cargo add esp-bsp
The configuration code for PINs intended to be used at main function
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);
The configuration code for Rust Embasy task
#[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)
If you intend to use suggested features then add similar configuration to 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" ]