Embassy STM32 硬件抽象层#

Embassy_STM32_硬件抽象层 建立于 stm32-metapac 基础之上。

芯片系列与版本繁多的问题#

STM32 微控制器有很多系列,支持所有系列是一项艰巨的任务。STM32 不同芯片系列的外设版本是相同的,Embassy 充分利用了的这个特征。Embassy 没有为每个 STM32 芯片系列都去实现一个外设接口,对于外设版本相同的 STM32 系列,会被代码生成相同的寄存器类型,Embassy 只针对不同寄存器类型,有一个单独的 SPI 实现。

外设的元信息#

stm32-metapac 模块生成寄存器类型时,使用了 STM32 芯片系列预先生成的芯片和寄存器定义。这是在编译时根据 Cargo 功能标志完成的。

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

硬件抽象层(HAL)#

embassy-stm32 模块包含了 STM32 全系列的硬件层抽象实现。对于给定芯片系列和外设版本,该实现使用自动派生出的特性标记,来支持相对应的版本。

定时器的驱动程序#

STM32 定时器驱动程序默认工作频率为 32768 Hz。