embedded-hal

embedded-hal クレートは、一般的なマイクロコントローラー周辺機器を対象とする複数のトレイトを提供します。

  • GPIO
  • PWM
  • ディレイタイマー
  • I2C および SPI のバスとデバイス

バイトストリーム(例: UART)、CAN バス、RNG 向けの同様のトレイトは、それぞれ embedded-ioembedded-canrand_core に分かれています。

その後、他のクレートがこれらのトレイトに基づいて drivers を実装します。たとえば、加速度計ドライバーには I2C または SPI デバイスのインスタンスが必要になる場合があります。

  • これらのトレイトは周辺機器の使用を対象としていますが、初期化や設定は対象としていません。初期化と設定はプラットフォーム依存性が非常に高いためです。
  • 多くのマイクロコントローラー向けの実装に加え、Raspberry Pi 上の Linux のような他のプラットフォーム向けの実装もあります。
  • embedded-hal-async は、これらのトレイトの async 版を提供します。
  • embedded-hal-nb は、nb クレートに基づく、ノンブロッキング I/O への別のアプローチを提供します。