0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

手把手帶你移植HAL庫函數(shù)

信盈達(dá) ? 2024-05-18 08:04 ? 次閱讀

嵌入式系統(tǒng)開發(fā)中,硬件抽象層(HAL,Hardware Abstraction Layer)庫的使用可以極大地簡化開發(fā)過程,提高代碼的可移植性和維護性。本文將詳細(xì)介紹如何快速搞懂HAL庫的移植,幫助開發(fā)者更高效地進行嵌入式開發(fā)

手把手帶你移植HAL庫函數(shù)

38448724-14aa-11ef-bebc-92fbcf53809c.png

HAL庫提供了一套抽象接口,使開發(fā)者無需直接操作底層硬件寄存器,就能實現(xiàn)對硬件的控制。這種抽象使得代碼能夠更容易地移植到不同的硬件平臺上,同時也提高了代碼的可讀性和可維護性。384874ce-14aa-11ef-bebc-92fbcf53809c.png在開發(fā)過程中,我們可能會遇到需要將代碼從一種硬件平臺移植到另一種硬件平臺的情況。通過使用HAL庫,可以大大簡化這一過程。移植HAL庫的主要好處包括:

提高代碼的可移植性:避免依賴特定硬件平臺,使代碼可以在不同平臺之間復(fù)用。


簡化開發(fā)過程:減少對底層硬件細(xì)節(jié)的關(guān)注,專注于上層應(yīng)用邏輯。


提高代碼的穩(wěn)定性:使用經(jīng)過驗證的HAL庫可以減少硬件操作中的錯誤。


384d4d8c-14aa-11ef-bebc-92fbcf53809c.png本文將針對HAL庫移植進行搭建分享

3851e90a-14aa-11ef-bebc-92fbcf53809c.png


下載HAL庫,進入意法半導(dǎo)體的官網(wǎng)https://www.st.com/content/st_com/zh.html工具與軟件->嵌入式軟件->STM32微控制器軟件->選擇MCU和MPU包


385773f2-14aa-11ef-bebc-92fbcf53809c.png

38660bce-14aa-11ef-bebc-92fbcf53809c.png

選擇對應(yīng)的芯片,這里以M4系列為例

386b14b6-14aa-11ef-bebc-92fbcf53809c.png


選擇包含示例的版本 386f4798-14aa-11ef-bebc-92fbcf53809c.png 移植過程:創(chuàng)建文件夾

387432ee-14aa-11ef-bebc-92fbcf53809c.png

將對應(yīng)文件移植到對應(yīng)文件夾中


387edda2-14aa-11ef-bebc-92fbcf53809c.png

將文件中的_template去掉,在文件提及到過

在HAL_inc中

3882aa7c-14aa-11ef-bebc-92fbcf53809c.png

3887c0ca-14aa-11ef-bebc-92fbcf53809c.png

在HEL_Src中

388ce758-14aa-11ef-bebc-92fbcf53809c.png

下面三個文件刪除

38925170-14aa-11ef-bebc-92fbcf53809c.png

新建項目,移植文件

38a8a894-14aa-11ef-bebc-92fbcf53809c.png

38b04e78-14aa-11ef-bebc-92fbcf53809c.png

38b4662a-14aa-11ef-bebc-92fbcf53809c.png

添加文件至工程內(nèi)

將文件添加到對應(yīng)文件夾內(nèi)


38b8409c-14aa-11ef-bebc-92fbcf53809c.png

38bc3f3a-14aa-11ef-bebc-92fbcf53809c.png

添加頭文件路徑


38c145f2-14aa-11ef-bebc-92fbcf53809c.png

修下載器地址

38da7270-14aa-11ef-bebc-92fbcf53809c.png

38de62c2-14aa-11ef-bebc-92fbcf53809c.png


將main.c及main.h文件內(nèi)無關(guān)函數(shù)清除

38e2225e-14aa-11ef-bebc-92fbcf53809c.png

38e5cb66-14aa-11ef-bebc-92fbcf53809c.png

38ed20a0-14aa-11ef-bebc-92fbcf53809c.png

在該文件中,需要有要用的宏定義


38f18136-14aa-11ef-bebc-92fbcf53809c.png


向下走,選擇本芯片型號 38f62614-14aa-11ef-bebc-92fbcf53809c.png


將宏定義定義,中間使用’,’英文逗號隔開


38fcf688-14aa-11ef-bebc-92fbcf53809c.png


勾選上編碼c99


39016416-14aa-11ef-bebc-92fbcf53809c.png

點擊編譯


390f5044-14aa-11ef-bebc-92fbcf53809c.png


編譯成功,至此移植完成

總結(jié)

通過本文的介紹,相信大家對HAL庫的移植有了更清晰的認(rèn)識和了解。掌握HAL庫的移植技巧,不僅可以提高開發(fā)效率,還能增強代碼的可移植性和穩(wěn)定性。如果你覺得這篇文章對你有所幫助,請關(guān)注我們的公眾號,獲取更多嵌入式系統(tǒng)開發(fā)的干貨內(nèi)容!如有任何問題或建議,歡迎在下方留言與我們互動。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5082

    文章

    19123

    瀏覽量

    305143
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4331

    瀏覽量

    62604
  • HAL
    HAL
    +關(guān)注

    關(guān)注

    2

    文章

    70

    瀏覽量

    12613
收藏 人收藏

    評論

    相關(guān)推薦

    手把手教程:各類數(shù)字電源設(shè)計實例(程序+原理圖)

    本資料分享了數(shù)字電源設(shè)計實例,包含程序、原理圖等資料,手把手帶你獨立設(shè)計屬于自己的數(shù)字電源。
    發(fā)表于 07-07 15:13

    手把手帶你學(xué)習(xí)STM32L系列單片機(HAL庫)

    參考視頻是小熊派的開發(fā)板: 【STM32單片機學(xué)習(xí)】白嫖單片機教程——手把手帶你學(xué)習(xí)STM32L系列單片機(HAL庫)首先要知道公式:定時器時間=1/(時鐘頻率/預(yù)分頻/計數(shù)周期)然后了解定時器
    發(fā)表于 08-09 06:22

    手把手教你學(xué)STM32單片機

    整理資料來源【正點原子】 手把手教你學(xué)STM32單片機教學(xué)視頻 嵌入式 之 F103-基于新戰(zhàn)艦V]NANO_STM32F103開發(fā)指南-HAL庫版本_V1.0.pdf其它網(wǎng)絡(luò)操作等詞匯解釋pin
    發(fā)表于 08-19 07:08

    手把手教你寫批處理-批處理的介紹

    手把手教你寫批處理-批處理的介紹
    發(fā)表于 10-25 15:02 ?69次下載

    美女手把手教你如何裝機(中)

    美女手把手教你如何裝機(中) 再來是硬碟的部份,這款機殼還不錯,可以旋轉(zhuǎn)支架~
    發(fā)表于 01-27 11:14 ?1467次閱讀

    美女手把手教你如何裝機(下)

    美女手把手教你如何裝機(下) 接著下來就是今天的重頭戲,開核蘿!~
    發(fā)表于 01-27 11:16 ?2923次閱讀

    DragonBoard 410c手把手進行安卓開發(fā)之底層移植

    DragonBoard 410c手把手進行安卓開發(fā)之底層移植的過程講解,我還上傳了很多相關(guān)資料,感興趣的小伙伴們可以去我上傳的資料頁面里看看。
    發(fā)表于 06-30 15:10 ?7次下載

    手把手教你安裝Quartus II

    本章手把手把地教你如何安裝 Quartus II 軟件 ,并將它激活 。此外 還有USB -Blaster下載器的驅(qū)動安裝步驟 。
    發(fā)表于 09-18 14:55 ?9次下載

    手把手教你在家搭建監(jiān)控系統(tǒng)

    手把手教你在家搭建監(jiān)控系統(tǒng)
    發(fā)表于 01-17 19:47 ?25次下載

    手把手盤古STM32開發(fā)板移植uCOS-II教程

    手把手盤古STM32開發(fā)板移植uCOS-II教程
    發(fā)表于 10-16 09:38 ?22次下載

    手把手教你如何開始DSP編程

    手把手教你如何開始DSP編程。
    發(fā)表于 04-09 11:54 ?12次下載
    <b class='flag-5'>手把手</b>教你如何開始DSP編程

    手把手教你學(xué)LabVIEW視覺設(shè)計

    手把手教你學(xué)LabVIEW視覺設(shè)計手把手教你學(xué)LabVIEW視覺設(shè)計手把手教你學(xué)LabVIEW視覺設(shè)計手把手教你學(xué)LabVIEW視覺設(shè)計手把手
    發(fā)表于 03-06 01:41 ?3135次閱讀

    手把手教你開關(guān)電源PCB排板

    手把手教你開關(guān)電源PCB排板(新型電源技術(shù))-分享一下開關(guān)電源PCB排板的基本要點及分析,以及例子講解。絕對的手把手
    發(fā)表于 09-18 12:27 ?58次下載
    <b class='flag-5'>手把手</b>教你開關(guān)電源PCB排板

    手把手教你移植openharmony3.0到stm32(liteos_m)

    手把手教你移植openharmony3.0到stm32(liteos_m)
    發(fā)表于 12-05 20:21 ?47次下載
    <b class='flag-5'>手把手</b>教你<b class='flag-5'>移植</b>openharmony3.0到stm32(liteos_m)

    手把手教你學(xué)FPGA仿真

    電子發(fā)燒友網(wǎng)站提供《手把手教你學(xué)FPGA仿真.pdf》資料免費下載
    發(fā)表于 10-19 09:17 ?2次下載
    <b class='flag-5'>手把手</b>教你學(xué)FPGA仿真