• 資料介紹
  • 資料預(yù)覽
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

UM2643 面向STM32WL系列的STM32CubeWL入門

01/15 11:44
760
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

UM2643 面向STM32WL系列的STM32CubeWL入門

927.06 KB

意法半導(dǎo)體提供的 STM32Cube,旨在通過減少開發(fā)工作量、時間和成本,來顯著提高開發(fā)人員的工作效率。STM32Cube涵蓋整個 STM32 產(chǎn)品系列。

STM32Cube 包括:

—一套用戶友好的軟件開發(fā)工具,覆蓋從設(shè)計到生產(chǎn)的整個工程開發(fā)過程,其中包括:

?圖形軟件配置工具 STM32CubeMX,可通過圖形向?qū)ё詣由沙跏蓟?C 代碼。

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

?STM32CubeMonitor-Power(STM32CubeMonPwr),測量并幫助優(yōu)化 MCU 功耗的監(jiān)控工具。

?STM32CubeMonitor,配有專用附加組件、利用 STM32WL 執(zhí)行射頻測試(動態(tài)數(shù)據(jù)包傳輸/接收、PER 測量)并以圖形表示射頻性能的多功能監(jiān)控工具。

—針對每個系列提供綜合的嵌入式軟件平臺,(比如用于 STM32WL 系列的 STM32CubeWL):

?STM32 抽象層嵌入式軟件 STM32Cube HAL,確保用戶應(yīng)用在 STM32 各個產(chǎn)品之間實現(xiàn)最大限度的可移植性。

?底層 API(LL)提供快速、輕量且面向?qū)I(yè)人士的層,比 HAL 更接近于硬件。LL API 僅可用于一組外設(shè)。

?一組統(tǒng)一的中間件組件,如 FatFS、FreeRTOS?、LoRaWAN?、SubGHz_Phy、Sigfox?、KMS、SE 和mbed-crypto。

?所有嵌入式軟件實用工具均配備一套完整的示例。

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

級別 0

此層級分為三個子層:

-板級支持包(BSP)

-硬件抽象層(HAL)

?HAL 外設(shè)驅(qū)動程序

?底層驅(qū)動

-基本外設(shè)用例

板級支持包(BSP

該層提供了對應(yīng)于板載硬件組件的一系列 API(如 LCD、Audio、microSD?和 MEMS 驅(qū)動程序)。它包含兩

部分:

-組件

該驅(qū)動程序與板件上的外部器件(而不是 STM32)有關(guān)。組件驅(qū)動程序為 BSP 驅(qū)動程序的外部組件提供專用 API,并且可以移植到任何其他板件上。

-BSP 驅(qū)動程序

允許將組件驅(qū)動程序鏈接到專用板件上,并提供一組易于使用的 API 。 API 命名規(guī)則是BSP_FUNCT_Action()。示例:BSP_LED_Init(), BSP_LED_On()BSP 基于模塊化架構(gòu),只需執(zhí)行低層級例程,便可輕松移植到任何硬件上。

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

STM32CubeWL HAL 和 LL 是互補(bǔ)的,可滿足廣泛的應(yīng)用要求:

-HAL 驅(qū)動程序提供面向功能的高可移植的頂層 API。它們向最終用戶隱藏了 MCU 和外設(shè)的復(fù)雜性。

HAL 驅(qū)動程序提供通用多實例且面向功能的 API,通過提供可用的步驟來幫助用戶簡化應(yīng)用程序的實現(xiàn)。

例如,對于通信外設(shè)(I2C、UART 等),它提供了 API,用于外設(shè)初始化和配置,以及基于輪詢、中斷或 DMA 處理的數(shù)據(jù)傳輸管理和處理通信過程中可能出現(xiàn)的通信錯誤。

HAL 驅(qū)動程序 API 分為兩類:

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

?以及為特定系列或特定產(chǎn)品編號的器件提供特殊定制功能的擴(kuò)展 API。

底層 API 提供寄存器級別的底層 API,帶有更好的優(yōu)化,但可移植性較差。需要對 MCU 和外設(shè)技術(shù)參數(shù)有深入的了解。

LL 驅(qū)動程序旨在提供一個快速、輕量且面向?qū)I(yè)人士的層,比 HAL 更接近于硬件。與 HAL 相反,LLAPI 不用于優(yōu)化訪問并非關(guān)鍵特性的外設(shè),或者需要大量軟件配置和/或復(fù)雜上層棧的外設(shè)。

底層(LL)驅(qū)動程序具有:

一組函數(shù),用于根據(jù)數(shù)據(jù)結(jié)構(gòu)中指定的參數(shù),對外設(shè)主要特性進(jìn)行初始化

一組函數(shù),用于使用每個字段相應(yīng)的復(fù)位值填充初始化數(shù)據(jù)結(jié)構(gòu)

函數(shù),用于外設(shè)去初始化(外設(shè)寄存器恢復(fù)為默認(rèn)值)

一組內(nèi)聯(lián)函數(shù),用于直接和原子寄存器訪問

完全獨立于 HAL,可在獨立模式(無 HAL 驅(qū)動程序)下使用

涵蓋全部支持的外設(shè)特性

實現(xiàn)雙核:

?相同的 HAL/LL 驅(qū)動程序支持單核及雙核 STM32WL 系列

—在 STM32WL 雙核器件中,兩個內(nèi)核(Cortex?-M4 和 Cortex?-M0+)可以采用相同的方式訪問所有外設(shè)。這意味著,Cortex?-M4 與 Cortex?-M0+之間不存在外設(shè)分割或默認(rèn)分配。為此,兩個內(nèi)核之間共享相同的外設(shè) HAL 和 LL 驅(qū)動程序。

—此外,有些外設(shè)(主要是:RCC、GPIO、PWR、HSEM、IPCC、GTZC...)還具有附加的雙

核特性:

“DUAL_CORE”定義用于界定僅雙核系列上可用的代碼(定義、函數(shù)、宏...)。

“CORE_CM0PLUS”定義用于界定雙核系列上適于 Cortex?-M0+的特定配置/代碼部分的代碼。使用反轉(zhuǎn)或“else”語句時,此定義用于界定雙核系列上適于 Cortex?-M4+的特定配置/代碼部分的代碼。

資料預(yù)覽

相關(guān)推薦