最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

STM32之HAL、LL和標(biāo)準(zhǔn)庫

2023-06-15 16:41 作者:跋扈洋  | 我要投稿

引言

我們在進(jìn)行STM32開發(fā)的時候,使用寄存器進(jìn)行開發(fā)的終究是少數(shù),大多數(shù)人還是習(xí)慣用庫函數(shù)進(jìn)行開發(fā)。到目前為止,有標(biāo)準(zhǔn)外設(shè)庫、HAL庫、LL庫 三種。本文將分別介紹以下三種庫,便于大家區(qū)分。

介紹

標(biāo)準(zhǔn)庫

標(biāo)準(zhǔn)庫(Standard Peripheral Library)是STMicroelectronics提供的最基本的庫。它提供了對STM32微控制器的底層寄存器和外設(shè)的直接訪問。標(biāo)準(zhǔn)庫的設(shè)計目標(biāo)是提供高度靈活性和低層次的硬件控制,以滿足對性能和資源的嚴(yán)格要求。使用標(biāo)準(zhǔn)庫,開發(fā)人員可以直接操作寄存器來配置和控制微控制器的功能,但需要手動編寫大量的底層代碼。標(biāo)準(zhǔn)庫適用于對性能要求較高的應(yīng)用和對代碼大小和效率有嚴(yán)格要求的項目。

HAL庫

HAL庫(Hardware Abstraction Layer)是STMicroelectronics為了提供更高級別的抽象和簡化開發(fā)而引入的庫。HAL庫基于標(biāo)準(zhǔn)庫,并提供了一組API函數(shù),將底層硬件操作抽象為高級函數(shù)調(diào)用。這樣,開發(fā)人員可以使用更高級別的API函數(shù)來進(jìn)行配置和控制微控制器的功能,而不需要直接操作底層寄存器。HAL庫提供了一種更易用和可移植的編程模型,并減少了編寫底層代碼的工作量。它還支持多種開發(fā)板和外設(shè),提供了一致的接口,簡化了代碼移植和復(fù)用。HAL庫適用于大多數(shù)應(yīng)用程序,尤其是中等復(fù)雜性的項目。

LL庫

LL庫(Low-Level Library)是STMicroelectronics在HAL庫的基礎(chǔ)上提供的更低級別的庫。LL庫提供了對底層寄存器和外設(shè)的更直接的訪問,并提供了一組低級別的API函數(shù)。LL庫保留了更多的硬件細(xì)節(jié),為開發(fā)人員提供了更高級別的靈活性和控制。使用LL庫,開發(fā)人員可以直接編寫更底層的代碼,實現(xiàn)對微控制器和外設(shè)的精細(xì)控制。LL庫適用于對性能和資源要求極高,以及對底層硬件控制有特殊需求的應(yīng)用。

三者的關(guān)系

在這三種庫中,出現(xiàn)的先后順序是標(biāo)準(zhǔn)庫—HAL庫—LL庫,所以大家如果在網(wǎng)上 看到LL庫編寫的程序,大概是不久完成的,看到標(biāo)準(zhǔn)庫,可能就是稍早一些時候的了。
這幾種庫的比較官方介紹如下圖:


HAL庫雖然移植性最好,但問題也最多。比如在串口收發(fā)的時候,由于HAL庫中的中斷接收和串口發(fā)送使用的互斥鎖是一個,所以會造成好好的全雙工變成了半雙工。而標(biāo)準(zhǔn)庫和LL庫都沒有這個問題。諸如此類的問題還有很多,但HAL庫確實開發(fā)效率最高。具體使用效果因人而異吧。

總結(jié)

ST提供的標(biāo)準(zhǔn)庫、HAL庫和LL庫各有其優(yōu)勢和特點,如果是移植很久前的項目,大概率要使用標(biāo)準(zhǔn)庫。如果新開發(fā)項目,使用STM32CubeMX就必須使用HAL庫和LL庫了。個人建議,現(xiàn)在最好是使用HAL庫+LL庫進(jìn)行開發(fā),因為這是官方主推的庫,并且CubeMX確實是個很好用的工具,而里面只有HAL庫和LL庫。HAL庫開發(fā)迅速,LL庫開發(fā)穩(wěn)定,大家可以結(jié)合著用。


STM32之HAL、LL和標(biāo)準(zhǔn)庫的評論 (共 條)

分享到微博請遵守國家法律
皮山县| 广汉市| 金昌市| 堆龙德庆县| 永仁县| 伊川县| 涪陵区| 沅江市| 北安市| 南靖县| 右玉县| 宝清县| 荃湾区| 克什克腾旗| 蒙阴县| 庆元县| 永州市| 丹棱县| 吉木乃县| 岗巴县| 资源县| 桃源县| 集安市| 天气| 乐昌市| 施秉县| 石城县| 武功县| 黄平县| 吴忠市| 阿克陶县| 柘荣县| 句容市| 师宗县| 铁岭县| 蓝田县| 南安市| 桂林市| 怀仁县| 弋阳县| 木里|