• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > STM32開發(fā)-LL庫與HAL庫對比

    STM32開發(fā)-LL庫與HAL庫對比

    作者:嵌入式經(jīng)驗分享 時間:2025-08-01 來源:今日頭條 收藏

    在使用CubeMX或者CubeIDE開發(fā)應用程序時,用戶可以根據(jù)自己的喜好選擇使用HAL高級庫或者LL底層庫驅動,但是在用法上,兩者有很大的不同。

    LL底層庫

    LL驅動函數(shù),實際上就是以內(nèi)聯(lián)函數(shù)的方式訪問寄存器,在優(yōu)化等級高的時候,編譯器會直接嵌入宏代碼,因此與我們自己直接對寄存器讀寫的效率是一樣的。

    也正因為如此,LL庫只給我們實現(xiàn)了功能非常簡單功能,基本上只有一些初始化的代碼,其它的功能需要用戶自己去實現(xiàn),這一方面增加了開發(fā)難度,但是,給我們開發(fā)程序增加了靈活性,我在專欄《精講》中,就是以LL庫為基礎,給大家介紹單片機的驅動及應用開發(fā),目前已經(jīng)完成了通用串口驅動及協(xié)議的課程(包括工程源代碼)。

    其特點就是高效,與自己直接寫代碼訪問寄存器相比,在不降低效率的情況下,其代碼更加統(tǒng)一規(guī)范,具有可移植性,而且更加節(jié)省內(nèi)存空間。

    HAL高級庫

    相比LL庫,HAL庫就為用戶實現(xiàn)了非常完善的功能,從初始化到具體的收、發(fā)和讀、寫等功能都全部提供了。所以從使用上看是更簡單了,但是效率降低了,代碼空間也大了很多。當然,這對一般的使用而言,影響不是太大,如果有微秒級別的控制需求的話,建議還是用LL庫比較好。在《STM32 HAL庫使用》中,對HAL庫函數(shù)的使用作了詳細的說明,從工作原理到參數(shù)配置,有一定基本的朋友可以參考。

    HAL初始化結構比較大,而且初始化完成之后還不釋放,有點浪費內(nèi)存。

    總結

    建議大家一定要采用庫函數(shù)開發(fā)自己的程序,不要再采用直接對寄存器賦值一個數(shù)字的方式來實現(xiàn)對寄存器的訪問了,時間一長,自己都忘了,很難維護,更難移植。


    關鍵詞: STM32

    評論


    相關推薦

    技術專區(qū)

    關閉
    主站蜘蛛池模板: 博湖县| 双牌县| 乃东县| 涟水县| 余江县| 柳河县| 烟台市| 柳河县| 资中县| 沧州市| 富顺县| 体育| 博乐市| 岳池县| 梅河口市| 昆山市| 阿拉善右旗| 通山县| 宜都市| 盐池县| 东海县| 嘉祥县| 会宁县| 嘉义县| 苍南县| 临漳县| 浮梁县| 公安县| 龙游县| 延吉市| 正阳县| 宿迁市| 孝昌县| 都昌县| 玛多县| 仪征市| 四平市| 丹棱县| 东至县| 体育| 敦煌市|