STM32G4系列STM32CubeG4入门----(1)

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和能力,用于独立模式

(没有哈尔司机)

-全面覆盖所支持的外设功能。