embedded-hal
Крейт embedded-hal предоставляет ряд трейтов, которые покрывают распространённую периферию микроконтроллеров:
- GPIO
- PWM
- Таймеры задержки
- Шины и устройства I2C и SPI
Аналогичные трейты для байтовых потоков (например, UART), шин CAN и генераторов случайных чисел вынесены в embedded-io, embedded-can и rand_core соответственно.
Другие крейты затем реализуют драйверы в терминах этих трейтов; например, драйверу акселерометра может понадобиться экземпляр устройства I2C или SPI.
- Трейты описывают использование периферии, но не инициализацию или настройку, так как инициализация и настройка сильно зависят от платформы.
- Существуют реализации для многих микроконтроллеров, а также для других платформ, например Linux на Raspberry Pi.
embedded-hal-asyncпредоставляет асинхронные версии трейтов.embedded-hal-nbпредлагает другой подход к неблокирующему вводу-выводу, основанный на крейтеnb.