關注我的朋友中,初學者比較多,今天就寫點基礎知識。
1寫在前面
陸續收到一些朋友的問題:
2.你有STM32L0標準外設庫嗎?
3.HAL庫和LL庫有什么差異?
。。。
針對STM32開發使用的嵌入式軟件,或者我們說的庫,可以分為四類:
STM32Snippets
Standard Peripheral Library
STM32Cube HAL
STM32Cube LL
下面就寫一下關于這四種庫的相關內容、以及對比應用等。
2
STM32Snippets
什么是STM32Snippets?
STM32Snippets是高度優化的代碼示例集合,使用符合CMSIS的直接寄存器訪問來減少代碼開銷,從而在各種應用程序中最大化STM32 MCUs的性能。
每個STM32系列的100多個片段演示了如何以最小的內存占用有效地使用STM32外圍設備。
地址:
https://www.st.com/en/embedded-software/stm32snippets.html?querycriteria=productId=LN1898
STM32Snippets可以理解為我們常說的“寄存器”開發STM32的底層驅動代碼。
主要針對的底層開發人員,或者從51轉過來,直接操作寄存器開發的人員。 是沒有經過封裝,可見底層寄存器的一套示例代碼。
STM32Snippets目前官方只提供:STM32F0和L0的示例代碼包。
3
Standard Peripheral Library
Standard Peripheral Library:簡寫SPL,也叫標準外設庫。
標準外設庫相信學習過STM32的朋友都不陌生,是一組外圍設備的C語言代碼集合。
標準外設庫是在寄存器的基礎上進行了一次簡單封裝,主要是面向過程的嵌入式系統開發人員。
地址:
https://www.st.com/en/embedded-software/stm32-standard-peripheral-libraries.html?querycriteria=productId=LN1939
目前標準外設庫支持STM32F0、 F1、 F2、 F3、 F4、 L1,不支持F7、 H7、 L0、 L4、 G0等系列。
所以,不要再問:在哪里下載L0的標準外設庫了。
4
STM32Cube HAL 和 LL
HAL:Hardware Abstraction Layer,硬件抽象層庫
LL:Low-Layer,底層庫
STM32Cube HAL 和 LL配合STM32CubeMX工具對STM32進行開發。
HAL針對的是具有一定嵌入式基礎的開發人員,HAL具有很好的移植性。
LL庫相對HAL,具有簡單的結構,針對之前從事SPL,或寄存器開發的人員。
地址:
https://www.st.com/stm32cubemx
最近新增了STM32Cube MP1。
STM32Cube HAL 和 LL是目前官方重點維護和更新的庫,也建議大家都學習一下。而且新出來的型號(如L4、G0等)就只有STM32Cube HAL 和 LL庫了。
5
四種庫對比
來自官方的對比信息,包含可移植性、優化、難以程度等。
其中:
Portability:可移植性
Optimization :優化
Easy:難易程度
Hardware coverage:硬件覆蓋
定位:
支持器件:
最近新增了STM32Cube MP1,官方沒有統計上。
庫之間的轉移:
本文就到這里,希望以上內容對你有所幫助!
-
嵌入式
+關注
關注
5087文章
19148瀏覽量
306186 -
STM32
+關注
關注
2270文章
10910瀏覽量
356615 -
stm32cubemx
+關注
關注
5文章
283瀏覽量
14844 -
HAL庫
+關注
關注
1文章
121瀏覽量
6329
發布評論請先 登錄
相關推薦
評論