embedded-hal
embedded-hal クレートは、一般的なマイクロコントローラー周辺機器を対象とする複数のトレイトを提供します。
- GPIO
- PWM
- ディレイタイマー
- I2C および SPI のバスとデバイス
バイトストリーム(例: UART)、CAN バス、RNG 向けの同様のトレイトは、それぞれ embedded-io、embedded-can、rand_core に分かれています。
その後、他のクレートがこれらのトレイトに基づいて drivers を実装します。たとえば、加速度計ドライバーには I2C または SPI デバイスのインスタンスが必要になる場合があります。
- これらのトレイトは周辺機器の使用を対象としていますが、初期化や設定は対象としていません。初期化と設定はプラットフォーム依存性が非常に高いためです。
- 多くのマイクロコントローラー向けの実装に加え、Raspberry Pi 上の Linux のような他のプラットフォーム向けの実装もあります。
embedded-hal-asyncは、これらのトレイトの async 版を提供します。embedded-hal-nbは、nbクレートに基づく、ノンブロッキング I/O への別のアプローチを提供します。