embedded-hal

این crate 'embedded-hal' تعدادی ویژگی را ارائه می‌دهد که میکروکنترلرهای جانبی رایج را پوشش می‌دهد:

  • GPIO
  • PWM
  • تایمرهای تاخیری
  • گذرگاه‌ها و دستگاه‌های I2C و SPI

ویژگی‌های مشابه برای جریان‌های بایت (مانند UART)، گذرگاه‌های CAN و RNG و تقسیم شدن به embedded-io، [embedded-can](https ://crates.io/crates/embedded-can) و rand_core به ترتیب.

سپس crateهای دیگر درایورها را بر حسب این ویژگی‌ها پیاده‌سازی می‌کنند، به عنوان مثال. یک درایور شتاب سنج ممکن است به یک نمونه دستگاه I2C یا SPI نیاز داشته باشد.

  • این ویژگی‌ها با استفاده از وسایل جانبی(peripherals) پوشش می‌دهند، اما آنها را مقداردهی اولیه یا پیکربندی نمی‌کنند، زیرا مقداردهی اولیه و پیکربندی معمولاً به پلتفرم خاص بستگی دارد.
  • پیاده‌سازی‌هایی برای بسیاری از میکروکنترلرها و همچنین پلتفرم‌های دیگری مانند لینوکس در Raspberry Pi وجود دارد.
  • برایembedded-hal-async نسخه‌های async از traitها را ارائه می دهد.
  • مورد embedded-hal-nb رویکرد دیگری را برای عدم مسدود کردن I/O ارائه می دهد که بر اساس [nb](https:// crates.io/crates/nb) crate است.