日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM32開發(fā)-LL庫(kù)與HAL庫(kù)對(duì)比

          STM32開發(fā)-LL庫(kù)與HAL庫(kù)對(duì)比

          作者:嵌入式經(jīng)驗(yàn)分享 時(shí)間:2025-08-01 來(lái)源:今日頭條 收藏

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

          LL底層庫(kù)

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

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

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

          HAL高級(jí)庫(kù)

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

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

          總結(jié)

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


          關(guān)鍵詞: STM32

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉