Embassy STM32 HAL

Embassy STM32 HAL 基于 stm32-metapac 项目。

STM32有太多的型号

STM32 MCU有许多不同的系列和型号,支持所有型号是一项巨大的工作。Embassy利用了STM32外设版本在不同芯片系列之间相同的特点,没有为每个STM32芯片系列重新实现SPI外设,而是有一个单一的SPI实现,它依赖于代码生成的寄存器类型,这些寄存器类型对于具有相同版本外设的STM32系列是相同的。

metapac模块

`stm32-metapac` 模块使用预生成的芯片和寄存器定义来为STM32芯片系列生成寄存器类型。这一过程是在编译时根据Cargo feature flags完成的。

芯片和寄存器的定义位于一个独立的模块 stm32-data 中,每当我们在定义中发现错误或添加对新芯片系列的支持时,就会对其进行修改。

HAL模块

`embassy-stm32` 模块包含了所有STM32系列的HAL实现。该实现使用自动派生的feature flags来支持给定芯片给定外设的正确版本。

定时器驱动

默认情况下,STM32定时器驱动的频率为32768Hz。