作者 | strongerHuang
微信公眾號 | strongerHuang
1.我是選擇寄存器開發(fā)STM32,還是存器標準外設庫呢?2.你有STM32L0標準外設庫嗎?
3.HAL庫和LL庫有什么差異?。。外設。庫對庫
下面就來講講開發(fā)STM32的比寄標準四種庫:
- STM32Snippets
- Standard Peripheral Library
- STM32Cube LL
- STM32Cube HAL
1
STM32Snippets
什么是STM32Snippets?
STM32Snippets可翻譯為“代碼片段”、“裁剪”,存器其實他就是外設我們常說的“寄存器”開發(fā)STM32的底層驅(qū)動代碼。
比如配置ADC引腳的庫對庫代碼片段:
__INLINE void ConfigureGPIOforADC(void){ /* (1) Enable the peripheral clock of GPIOA, GPIOB and GPIOC */ /* (2) Select analog mode for PA1 */ /* (3) Select analog mode for PB1 */ /* (4) Select analog mode for PC0 */ RCC->AHBENR |= RCC_AHBENR_GPIOAEN | RCC_AHBENR_GPIOBEN | RCC_AHBENR_GPIOCEN; /* (1) */ GPIOA->MODER |= GPIO_MODER_MODER1; /* (2) */ GPIOB->MODER |= GPIO_MODER_MODER1; /* (3) */ GPIOC->MODER |= GPIO_MODER_MODER0; /* (4) */ }
STM32Snippets是高度優(yōu)化的示例代碼集合,使用符合CMSIS的比寄標準直接寄存器訪問來減少代碼開銷,從而在各種應用程序中最大化STM32 MCUs的存器性能。
STM32Snippets主要針對底層開發(fā)人員,外設或者從51轉(zhuǎn)過來,庫對庫直接操作寄存器開發(fā)的比寄標準人員。 是存器沒有經(jīng)過封裝,可見底層寄存器的一套示例代碼。
每個STM32系列的100多個片段演示了如何以最小的內(nèi)存占用有效地使用STM32外圍設備。
STM32Snippets目前官方只提供:STM32F0和L0的示例代碼包。
提供的示例代碼有點類似標準外設庫風格,給大家看下F0的代碼包:
同樣也提供Keil MDK、 IAR EWARM的工程。
2
Standard Peripheral Library
Standard Peripheral Library:簡寫SPL,也叫標準外設庫。
相信學習過STM32的朋友,對標準外設庫都不陌生,是一組外圍設備的C語言代碼集合。(因為現(xiàn)在ST官方主推STM32CubeMX,所以停止了對SPL的更新)
標準外設庫是在寄存器的基礎上進行了一次簡單封裝,主要是面向過程的嵌入式系統(tǒng)開發(fā)人員。
目前標準外設庫支持STM32F0、 F1、 F2、 F3、 F4、 L1, 不支持F7、 H7、 MP1、L0、 L4、 L5、 G0、G4等后面推出的系列。
所以,不要再問:在哪里下載L0的標準外設庫了。
3
STM32Cube LL 和 HAL
LL:Low-Layer,底層庫
HAL:Hardware Abstraction Layer,硬件抽象層庫
STM32Cube HAL 和 LL配合STM32CubeMX工具對STM32進行開發(fā)。也是目前ST官方主推的一套開發(fā)STM32的庫。
HAL針對的是具有一定嵌入式基礎的開發(fā)人員,HAL具有很好的移植性。
LL庫相對HAL,具有簡單的結(jié)構(gòu),針對之前從事SPL(標準外設庫),或寄存器開發(fā)的人員。
STM32Cube HAL 和 LL是目前官方主推,并重點維護和更新的庫,也建議大家都學習一下。而且新出來的型號(如L5、G4等系列)沒有標準外設庫,只有STM32Cube HAL 和 LL庫了。
4
四種庫對比
來自官方的對比信息,包含可移植性、優(yōu)化、難易程度等。
其中:
Portability:可移植性
Optimization :優(yōu)化
Easy:難易程度
Hardware coverage:硬件覆蓋
定位:
支持器件:
最近新增了STM32Cube MP1,官方?jīng)]有統(tǒng)計上。
庫之間的轉(zhuǎn)移:
本文就到這里,希望以上內(nèi)容對你有所幫助!
------------ END------------
關(guān)注 微信公眾號『嵌入式專欄』,底部菜單查看更多內(nèi)容,回復“加群”按規(guī)則加入技術(shù)交流群。
免責聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!