コンテンツにスキップ

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 ベースで実装されています。

バージョン
0.4.0
ライセンス
MIT OR Apache-2.0
メンテナンス
活発に開発中

コード例

STM32 の GPIO を使った基本的な LED 点滅。embassy の非同期タスクとして実装。

LED 点滅 (Blinky)
#![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;
}
}

関連 Crates

関連記事