首頁>Club>
都有什麼特點
10
回覆列表
  • 1 # 電子創客營

    最開始在大學我學習stm32 的時候最早是使用暫存器來開發的。

    當我把所有暫存器的例程跑了一遍以後,就又使用標準庫再把之前的例程再學習了一遍,之後再也沒有用過純暫存器開發的。

    為什麼?因為沒有機會了,這時候我已經畢業了。在公司開始做專案,專案的緊迫性已經不再是以你學習實踐為目的,而是更快更高質量的完成專案開發工作,把產品推向市場。

    再後來STM32出的型號越來越多,st為了把所有型號的庫使用統一的介面並且方便後續維護退出了STM32HAL庫和STM32LL庫。這兩種庫都可以基於STM32CUBEMX圖形化配置以後直接生成工程。而標準庫ST也不會再維護更新

    所以很明顯最好就是使用ST最新的HAL庫或者LL庫。有的人可能會說HAL庫效率不高,我還是用標準庫吧,沒錯HAL是沒有標準庫效率高。但是有LL庫作為替補更接近底層。

    目前我做的專案都是優先基於HAL庫來做,如果有些FLASH比較小的比如8k,我為了最佳化程式碼空間大小會使用LL庫。

  • 2 # 招財機器人

    標準庫函式則是ST以前推出的,包括暫存器版本和庫函式版本。暫存器版本使用較麻煩,每個設定都要去檢視晶片datasheet,好處是可以讓你熟悉晶片的暫存器配置。庫函式是基於暫存器版本進行二次封裝後

    推出的,它的優勢就是暫存器版本的劣勢,方便了使用,不再需要手動去配置暫存器,使用更方便了。但是它的劣勢就是HAL的優勢,就是每次修改MCU功能,都需要手動去修改功能,而且自己修改也不能

    保證正確性,程式程式碼在不同MCU之間的移植性不強。

    HAL庫,HAL是Hardware Abstraction Layer的縮寫,中文名稱是:硬體抽象層,HAL庫工程一般使用Cube軟體來生成工程。HAL庫是ST公司為STM32的MCU最新推出的抽象層嵌入式軟體,

    更方便的實現跨STM32產品的最大可移植性。優勢就是不需要開發工程師再關注所用MCU型號,只需要專注所以要的功能軟體開發工作。而且是未來主推的方向,正在不斷的推出更新。

    建議平時用的時候將自動更新關閉,否則會出現之前除錯好的程式碼因為更新導致不能正常工作。設定方法點Cube軟體的help,然後選擇手動更新,詳細見配圖。

    以我和公司工程師研發經歷來看,最開始的時候都使用標準庫函式,後來發現ST推出HAL庫以後,慢慢都轉到HAL庫的開發。它的優勢在於不同晶片間軟體程式碼的移植性非常強,而且用Cube軟體生成

    的工程規定了自己的程式碼放置位置,如果不按規定寫,重新用Cube生成工程時自己的程式碼會被覆蓋,進一步加強了程式碼的移植性。

    另外,如果需要修改MCU的功能,比如新新增GPIO或者串列埠,採用標準庫函式的時候,需要複製其他串列埠的初始化程式碼,然後手動修改。而採用HAL庫則不需要,只需要在Cube新增設定,然後生成即可,

    Cube自動幫你把初始化程式碼生成。

    綜上所述,建議新手直接使用HAL庫,這樣更容易上手,更快的開發出所需要的軟體功能。將繁瑣的暫存器配置工作,交給Cube軟體即可,這也符合未來開發的主流思想。

  • 中秋節和大豐收的關聯?
  • 為什麼有的人明明想做金錢的主人,最後卻淪為了金錢的奴隸?