STM32G4系列STM32CubeG4入门----(1)
STM32CubeG4 HAL和LL是互补的,涵盖了广泛的应用
要求:
•HAL驱动程序提供了面向高级功能的高度可移植的api。他们隐藏
MCU和外围设备的复杂性给终端用户。
HAL驱动程序提供了通用的面向多实例特性的api,从而简化了程序
通过提供即用流程实现用户应用程序。作为一个例子,
对于通信外设(如I2S或UART), HAL驱动程序提供
api允许初始化和配置外设,管理
基于轮询的数据传输,中断或DMA进程,以及处理可能会出现沟通错误。HAL驱动程序api分为两类:-通用api,为所有STM32系列提供通用和通用的函数
—扩展api为特定的家族提供特定的定制功能
特定的零件号。
•底层api在注册层提供底层api,有更好的优化但是
更少的可移植性。他们需要深入了解MCU和外设规范。
LL驱动程序被设计为提供一个快速的轻量级的面向专家的层
比HAL更接近硬件与HAL相反,没有提供LL api
外设的优化访问不是一个关键功能,或对于那些需要重
软件配置和/或复杂的上层堆栈(如FSMC)。
LL驱动特性:
-一组根据参数初始化外设主要特性的函数
在数据结构中指定
一组函数用于填充初始化数据结构与重置值
对应于每个字段
-外设反初始化(外设寄存器恢复到它们的
默认值)
-一组内联函数,用于直接和原子寄存器访问
-完全独立于HAL和能力,用于独立模式
(没有哈尔司机)
-全面覆盖所支持的外设功能。