• 资料介绍
  • 在线预览
  • 相关推荐
申请入驻 产业图谱

UM2643 面向STM32WL系列的STM32CubeWL入门

01/15 11:44
730
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

UM2643 面向STM32WL系列的STM32CubeWL入门

927.06 KB

意法半导体提供的 STM32Cube,旨在通过减少开发工作量、时间和成本,来显著提高开发人员的工作效率。STM32Cube涵盖整个 STM32 产品系列。

STM32Cube 包括:

—一套用户友好的软件开发工具,覆盖从设计到生产的整个工程开发过程,其中包括:

?图形软件配置工具 STM32CubeMX,可通过图形向导自动生成初始化 C 代码。

?STM32CubeProgrammer(STM32CubeProg),支持图形接口和命令行接口的编程工具。

?STM32CubeMonitor-Power(STM32CubeMonPwr),测量并帮助优化 MCU 功耗的监控工具。

?STM32CubeMonitor,配有专用附加组件、利用 STM32WL 执行射频测试(动态数据包传输/接收、PER 测量)并以图形表示射频性能的多功能监控工具。

—针对每个系列提供综合的嵌入式软件平台,(比如用于 STM32WL 系列的 STM32CubeWL):

?STM32 抽象层嵌入式软件 STM32Cube HAL,确保用户应用在 STM32 各个产品之间实现最大限度的可移植性。

?底层 API(LL)提供快速、轻量且面向专业人士的层,比 HAL 更接近于硬件。LL API 仅可用于一组外设。

?一组统一的中间件组件,如 FatFS、FreeRTOS?、LoRaWAN?、SubGHz_Phy、Sigfox?、KMS、SE 和mbed-crypto。

?所有嵌入式软件实用工具均配备一套完整的示例。

STM32CubeWL 在基于 Arm? Cortex?-M 处理器的 STM32WL 系列微控制器上运行。

级别 0

此层级分为三个子层:

-板级支持包(BSP)

-硬件抽象层(HAL)

?HAL 外设驱动程序

?底层驱动

-基本外设用例

板级支持包(BSP

该层提供了对应于板载硬件组件的一系列 API(如 LCD、Audio、microSD?和 MEMS 驱动程序)。它包含两

部分:

-组件

该驱动程序与板件上的外部器件(而不是 STM32)有关。组件驱动程序为 BSP 驱动程序的外部组件提供专用 API,并且可以移植到任何其他板件上。

-BSP 驱动程序

允许将组件驱动程序链接到专用板件上,并提供一组易于使用的 API 。 API 命名规则是BSP_FUNCT_Action()。示例:BSP_LED_Init(), BSP_LED_On()BSP 基于模块化架构,只需执行低层级例程,便可轻松移植到任何硬件上。

硬件抽象层(HAL)和底层(LL

STM32CubeWL HAL 和 LL 是互补的,可满足广泛的应用要求:

-HAL 驱动程序提供面向功能的高可移植的顶层 API。它们向最终用户隐藏了 MCU 和外设的复杂性。

HAL 驱动程序提供通用多实例且面向功能的 API,通过提供可用的步骤来帮助用户简化应用程序的实现。

例如,对于通信外设(I?C、UART 等),它提供了 API,用于外设初始化和配置,以及基于轮询、中断或 DMA 处理的数据传输管理和处理通信过程中可能出现的通信错误。

HAL 驱动程序 API 分为两类:

?为所有 STM32 系列提供通用功能的通用 API

?以及为特定系列或特定产品编号的器件提供特殊定制功能的扩展 API。

底层 API 提供寄存器级别的底层 API,带有更好的优化,但可移植性较差。需要对 MCU 和外设技术参数有深入的了解。

LL 驱动程序旨在提供一个快速、轻量且面向专业人士的层,比 HAL 更接近于硬件。与 HAL 相反,LLAPI 不用于优化访问并非关键特性的外设,或者需要大量软件配置和/或复杂上层栈的外设。

底层(LL)驱动程序具有:

一组函数,用于根据数据结构中指定的参数,对外设主要特性进行初始化

一组函数,用于使用每个字段相应的复位值填充初始化数据结构

函数,用于外设去初始化(外设寄存器恢复为默认值)

一组内联函数,用于直接和原子寄存器访问

完全独立于 HAL,可在独立模式(无 HAL 驱动程序)下使用

涵盖全部支持的外设特性

实现双核:

?相同的 HAL/LL 驱动程序支持单核及双核 STM32WL 系列

—在 STM32WL 双核器件中,两个内核(Cortex?-M4 和 Cortex?-M0+)可以采用相同的方式访问所有外设。这意味着,Cortex?-M4 与 Cortex?-M0+之间不存在外设分割或默认分配。为此,两个内核之间共享相同的外设 HAL 和 LL 驱动程序。

—此外,有些外设(主要是:RCC、GPIO、PWR、HSEM、IPCC、GTZC...)还具有附加的双

核特性:

“DUAL_CORE”定义用于界定仅双核系列上可用的代码(定义、函数、宏...)。

“CORE_CM0PLUS”定义用于界定双核系列上适于 Cortex?-M0+的特定配置/代码部分的代码。使用反转或“else”语句时,此定义用于界定双核系列上适于 Cortex?-M4+的特定配置/代码部分的代码。

在线预览

相关推荐