2个不稳定版本

0.1.0 2024年1月11日
0.0.0 2021年4月21日

1500嵌入式开发 中排名

Download history 335/week @ 2024-04-29 259/week @ 2024-05-06 419/week @ 2024-05-13 253/week @ 2024-05-20 327/week @ 2024-05-27 433/week @ 2024-06-03 421/week @ 2024-06-10 401/week @ 2024-06-17 394/week @ 2024-06-24 231/week @ 2024-07-01 266/week @ 2024-07-08 305/week @ 2024-07-15 423/week @ 2024-07-22 421/week @ 2024-07-29 576/week @ 2024-08-05 407/week @ 2024-08-12

1,864 每月下载量
用于 8 crate

MIT/Apache

1.5MB
37K SLoC

Embassy STM32 HAL

embassy-stm32 HAL旨在为所有STM32系列提供安全、惯用的硬件抽象层。HAL实现了许多外设的阻塞和异步API。在适当的情况下,实现了embedded-hal v0.2和v1.0的阻塞和异步版本的特性,以及来自embedded-io[-async]的串行特性。

embassy-stm32支持所有STM32芯片系列

STM32微控制器有多种系列和类型,支持所有这些系列是一项艰巨的任务。Embassy利用STM32外设版本在芯片系列之间共享的事实。例如,而不是为每个STM32芯片系列重新实现SPI外设,Embassy有一个单一的SPI实现,该实现依赖于代码生成的寄存器类型,对于具有相同外设版本的STM32系列是相同的。

实际上,它是这样工作的

  1. 您使用特性标志告诉编译器您正在使用哪个芯片
  2. stm32-metapac模块在编译时根据stm32-data模块中的数据为该芯片生成寄存器类型
  3. embassy-stm32 HAL根据自动生成的特性标志为每个外设选择正确的实现,并对HAL在该芯片上运行所需的任何其他调整

请注意,尽管embassy-stm32力求一致地支持所有芯片的所有外设,但这种方法可能导致不同系列上的API和功能略有不同。请查阅您所使用的特定芯片的文档以确认确切可用内容。

嵌入式-hal

《embassy-stm32》HAL 实现了来自 embedded-hal(v0.2 和 1.0)和 embedded-hal-async,以及 embedded-ioembedded-io-async 的特性。

embassy-time 时间驱动器

如果启用了 time-driver-* 功能,embassy-stm32 提供了一个用于与 embassy-time 一起使用的时间驱动器。您可以通过 time-driver-tim* 功能选择内部使用的硬件定时器,或者使用 time-driver-any 由 embassy 选择。

embassy-time 的默认滴答频率为 1MHz,这足以导致与 embassy-stm32 时间驱动器当前支持的 16 位定时器(特别是,如果临界区延迟了超过 32ms 的中断请求)出现问题。为了避免这种情况,建议选择较低的滴答频率。对于许多用途,32.768kHz 是一个合理的默认值。

互操作性

此包可以在任何执行器上运行。

可选地,一些需要 embassy-time 的功能可以通过 time 功能激活。如果您启用它,必须在您的项目中链接一个 embassy-time 驱动器。

low-power 功能特别与 embassy-executor 集成,目前不能在其他执行器上使用。

依赖关系

~166MB
~5.5M SLoC