embedded-hal

Крейт embedded-hal надає низку трейтів, що охоплюють поширені периферійні пристрої мікроконтролерів:

  • GPIO
  • PWM
  • Таймери затримки
  • Шини та пристрої I2C і SPI

Аналогічні трейти для байтових потоків (наприклад, UART), CAN-шини та ГВЧ (RNGs) і розбиті на embedded-io, embedded-can та rand_core, відповідно.

Інші крейти потім реалізують драйвери у термінах цих трейтів, наприклад драйверу акселерометра може знадобитися кземпляр пристрою I2C або SPI.

  • Трейти охоплюють використання периферійних пристроїв, але не їх ініціалізацію чи конфігурацію, оскільки ініціалізація та конфігурація, як правило, сильно залежить від платформи.
  • Існують реалізації для багатьох мікроконтролерів, а також інших платформ, таких як Linux на Raspberry Pi.
  • Крейт embedded-hal-async надає асинхронні версії трейтів.
  • Крейт embedded-hal-nb надає інший підхід до неблокуючого вводу/виводу, заснований на крейті nb.