Embassy STM32 — Crate 詳細
Embassy STM32
Beta no_std
STM32 マイクロコントローラ向けの async-first HAL 実装。embassy-rs プロジェクトの一部として開発されており、embassy-executor と組み合わせることで非同期タスクを中心にした組み込み開発が可能。主要シリーズ(F4/H7/G4/L4/WB 等)をはじめ、幅広い STM32 に対応。
Async-first HAL for STM32 microcontrollers, part of the embassy-rs project.
embassy-stm32 は Embassy プロジェクトの中核をなす HAL crate です。従来の blocking HAL とは異なり、すべてのペリフェラルドライバが async/await ベースで実装されています。
コード例
STM32 の GPIO を使った基本的な LED 点滅。embassy の非同期タスクとして実装。
#![no_std]#![no_main]
use embassy_executor::Spawner;use embassy_stm32::gpio::{Level, Output, Speed};use embassy_time::Timer;use {defmt_rtt as _, panic_probe as _};
#[embassy_executor::main]async fn main(_spawner: Spawner) { let p = embassy_stm32::init(Default::default()); let mut led = Output::new(p.PB7, Level::High, Speed::Low);
loop { led.set_high(); Timer::after_millis(500).await; led.set_low(); Timer::after_millis(500).await; }}