加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 资料介绍
  • 资料预览
  • 相关推荐
申请入驻 产业图谱

UM2643 面向STM32WL系列的STM32CubeWL入门

4小时前
71
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

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+的特定配置/代码部分的代码。

资料预览

相关推荐