色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

手把手帶你創建HAL版本MDK工程模板

dyquk4xk2p3d ? 來源:良許Linux ? 2023-11-20 10:31 ? 次閱讀

如何快速開發 STM32 項目?我們總不能每次開發一個項目就搭建一次工程,這樣效率太低了。

通常我們會使用一個模板工程,需要開發新項目的時候拿出來添加一些對應的模塊及業務代碼,一個項目就開發完成了。

但對于新手朋友來講,如何創建一個工程模板對他們來講是個非常大的挑戰。因為這個過程非常繁瑣,雖然不復雜,但只要其中有一個環節做錯了,那么就前功盡棄了,而且還不好排查。

本文將手把手帶你創建 HAL 版本 MDK 工程模板,基于 STM32F103C8T6 芯片。文章參照正點原子的教程,并結合自己的工作經驗寫作而成,如果你能按照這個教程跟著操作,相信一定能夠自己搭建一個HAL版本MDK工程模板。

1. 源碼下載及前置閱讀

如果大家跟著本教程學習還是無法自己創建 HAL 版本的 MDK 工程模板,那么可以參考我給大家準備的源文件。

源碼及本文所需要的固件包已經為大家準備好了,大家可以添加良許微信免費獲?。▊渥?120):

如果不知道如何搭建 STM32 編程環境,不知道如何燒錄 STM32 代碼,可以閱讀這篇文章:

零基礎快速上手STM32開發(手把手保姆級教程)】

2. 文件下載

可以根據以下步驟找到官方固件包:

STM32Cube 官方固件包在 ST 公司的官網可以免費下載,網址為:

可以根據以下步驟找到官方固件包:

22cf132a-8745-11ee-939d-92fbcf53809c.jpg

22d98f58-8745-11ee-939d-92fbcf53809c.jpg22eb297a-8745-11ee-939d-92fbcf53809c.jpg

但由于官網在國外,下載速度很慢,而且需要填寫各種信息,所以大家可以直接使用我給大家提供的固件包,反正也是從官網下載的。當前最新版本是 V1.8.5 。

3. 新建工程文件夾

真正開發 STM32 項目,就不是簡單一兩個 .c 和 .h 文件那么簡單了,而是有幾十個甚至更多的文件構成,通過某些組織形式形成的工程文件。

我們先在任意一個位置(比如桌面)創建一個文件夾,命名為 stm32f103c8t6_template ,當然你命為其它名字也可以。

創建的工程模板由下面 5 個目錄構成:

22f26a1e-8745-11ee-939d-92fbcf53809c.jpg

這 5 個目錄是做什么用的呢?具體作用如下表所示:

文件夾名稱 作用
Drivers 存放與硬件相關的驅動層文件
Middlewares 存放中間層文件
Output 存放工程編譯輸出文件
Projects 存放 MDK 工程文件
User 存放 HAL 庫用戶配置文件、main.c、中斷處理文件,以及分散加載文件

接下來我們就具體來講講這 5 個目錄文件到底要放一些什么文件。

3.1 Drivers文件夾

Drivers 文件夾里面又包含了 4 個文件夾,它們的作用如下:

文件夾名稱 作用
BSP 存放開發板板級支持包驅動代碼,如各種外設驅動
CMSIS 存放 CMSIS 底層代碼,如啟動文件(.s 文件)等
SYSTEM 存放系統級核心驅動代碼,如 sys.c、delay.c 和 usart.c 等
STM32F1xx_HAL_Driver 存放 ST 提供的 F1 系列 HAL 庫驅動源碼

3.1.1 BSP文件夾

我們平時所寫的 LED 驅動、蜂鳴器驅動、ESP8266驅動等等,都是放在這個目錄下面。

但由于咱這是工程模板,就先不考慮這些驅動了,所以這個目錄就暫時為空就好,等后面用到什么外設再具體添加對應的文件即可。

3.1.2 CMSIS文件夾

將官方提供的固件包下載,然后按下圖提示進到 CMSIS 目錄。

22fec91c-8745-11ee-939d-92fbcf53809c.jpg

但這個 CMSIS 目錄太過于龐大了,我們可以按以下步驟進行精簡。

230b266c-8745-11ee-939d-92fbcf53809c.jpg231aaa10-8745-11ee-939d-92fbcf53809c.jpg

此外,在 CMSIS 文件夾下還需要拷備一個 Include 目錄,但這個目錄我也不知道哪里去搞,大家可以從我給大家提供的模板工程里直接復制即可。

2334fb04-8745-11ee-939d-92fbcf53809c.jpg

或者你也可以使用 STM32CubeMX 隨便生成一個工程文件,然后找到下面這些文件,直接拷過來即可。

23459af4-8745-11ee-939d-92fbcf53809c.jpg

3.1.3 SYSTEM文件夾

這個文件夾主要存放的是一些常用的系統級核心驅動代碼,比如說時鐘配置、延時函數、串口等等,像這些配置都是非常經常用到,我們沒必要每次都自己手寫,直接復用即可。

在這里我們直接使用正點原子給我們提供的三個模塊代碼,沒法必要自己造輪子。

找到任何一個正點原子的項目(HAL版本),然后把整個 SYSTEM 文件夾拷備到 Drivers 目錄下。

23512b9e-8745-11ee-939d-92fbcf53809c.jpg

3.1.4 STM32F1xx_HAL_Driver文件夾

ST 公司提供的 HAL 庫驅動源碼都是放在這個文件夾里,這個直接從固件包里拷過來就可以了,路徑如下:

235e26c8-8745-11ee-939d-92fbcf53809c.jpg

這里使用的是 V1.8.5 ,當前最新版。

但進到這個目錄后會發現,里面有很多東西,我們刪掉其余的內容,只保留 Inc 及 Src 這兩個文件夾即可。

236c329a-8745-11ee-939d-92fbcf53809c.jpg

至此,drivers 文件夾全部處理完畢,如下圖示:

2386e252-8745-11ee-939d-92fbcf53809c.jpg

3.2 Middlewares文件夾

這個文件夾主要存放的是中間層代碼(組件/Lib 等),比如:FATFS、USB、LWIP、FreeRTOS,各種 GUI 等等。但作為模板工程,這些東西我們就先不添加,整個文件夾留空即可。

3.3 Output文件夾

該文件夾用于存放編譯器編譯工程輸出的中間文件,比如:.hex、.bin、.o 文件等,所以我們暫時無需主動往里面放東西。

3.4 Projects文件夾

該文件夾用于存放編譯器的工程文件。不同的開發工具所產生的工程文件是不一樣的,常見的開發工具有:MDK、IAR ,等等。但我們最常用的還是 MDK ,所以我們就可以在這個文件夾下創建一個 MDK-ARM 文件夾。

2397eb74-8745-11ee-939d-92fbcf53809c.jpg

如果你使用其它開發工具,那么就創建一個對應的文件夾就可以了。

3.5 User文件夾

該文件夾用于存放用戶編寫的代碼,如:HAL 庫用戶配置文件、main.c 文件、中斷處理文件,以及分散加載文件等。

在這個文件夾里,我們需要將下面那三個文件拷貝到這里來:

23a22ca6-8745-11ee-939d-92fbcf53809c.jpg23aaef26-8745-11ee-939d-92fbcf53809c.jpg

3.6 項目工程文件夾樹狀圖

23bb6946-8745-11ee-939d-92fbcf53809c.jpg

4. 新建工程框架

23d59488-8745-11ee-939d-92fbcf53809c.jpg23e80b2c-8745-11ee-939d-92fbcf53809c.jpg

如果沒有看到下圖中上面那個紅框的內容,請閱讀這篇文章【零基礎快速上手STM32開發(手把手保姆級教程)】,將 STM32F1 系列的固件包安裝好。

23f99658-8745-11ee-939d-92fbcf53809c.jpg2404110a-8745-11ee-939d-92fbcf53809c.jpg24103f20-8745-11ee-939d-92fbcf53809c.jpg

5. 添加文件

5.1 創建目標及分組

241c2718-8745-11ee-939d-92fbcf53809c.jpg

5.2 向各分組添加文件

5.2.1 添加Startup分組文件

2430e180-8745-11ee-939d-92fbcf53809c.jpg

5.2.2 添加User分組文件

245157da-8745-11ee-939d-92fbcf53809c.jpg245c0e6e-8745-11ee-939d-92fbcf53809c.jpg

5.2.3 添加SYSTEM分組文件

24685390-8745-11ee-939d-92fbcf53809c.jpg

5.2.4 添加驅動文件

247e0938-8745-11ee-939d-92fbcf53809c.jpg

到這一步就已經將所有的文件添加完畢了。但此時你們會發現驅動文件前面會有個小鑰匙,如下圖示:

24a64e8e-8745-11ee-939d-92fbcf53809c.jpg

這是因為官方的固件包的文件設置了只讀權限,我們只需要按下圖的方式取消只讀選項即可。

24b332ac-8745-11ee-939d-92fbcf53809c.jpg

6. 魔術棒設置

6.1 Target選項卡

24bfc72e-8745-11ee-939d-92fbcf53809c.jpg

6.2 Output與Listing選項卡

24ca0afe-8745-11ee-939d-92fbcf53809c.jpg

24d73e22-8745-11ee-939d-92fbcf53809c.jpg

6.3 C/C++選項卡

24e68486-8745-11ee-939d-92fbcf53809c.jpg

24f7c8cc-8745-11ee-939d-92fbcf53809c.jpg

2519dd4a-8745-11ee-939d-92fbcf53809c.jpg

6.4 Debug選項卡

2524c14c-8745-11ee-939d-92fbcf53809c.jpg

6.5 Utilities選項卡

252ab1f6-8745-11ee-939d-92fbcf53809c.jpg

7. 代碼修改

2541e10a-8745-11ee-939d-92fbcf53809c.jpg

255e781a-8745-11ee-939d-92fbcf53809c.jpg

25717032-8745-11ee-939d-92fbcf53809c.jpg

8. 燒錄驗證

經過以上操作,模板工程創建完成。此時可以按下圖接線燒錄驗證,工程沒問題的話,左側 LED 燈將以 500ms 間隔閃爍。

如果不知道如何搭建 STM32 編程環境,不知道如何燒錄 STM32 代碼,可以閱讀這篇文章:

【零基礎快速上手STM32開發(手把手保姆級教程)】

257c97dc-8745-11ee-939d-92fbcf53809c.jpg

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • STM32
    +關注

    關注

    2270

    文章

    10906

    瀏覽量

    356482
  • 編程
    +關注

    關注

    88

    文章

    3623

    瀏覽量

    93798
  • MDK
    MDK
    +關注

    關注

    4

    文章

    209

    瀏覽量

    32088
  • 工程模板
    +關注

    關注

    0

    文章

    10

    瀏覽量

    6880
  • HAL
    HAL
    +關注

    關注

    2

    文章

    71

    瀏覽量

    12637

原文標題:手把手帶你創建HAL版本MDK工程模板

文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

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

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

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

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

    手把手教大家創建基于GD32F303VE項目的工程模板

    本博文的主要內容是手把手教大家創建基于GD32F303VE項目的工程模板,其他系列的模板常見類似,均可以此博文作為參考,編譯環境基于Keil
    發表于 12-10 06:05

    工程模板創建步驟

    工程模板創建步驟1、創建步驟2、一些問題ARM編譯器不能編譯1、創建步驟關于工程
    發表于 01-12 07:32

    手把手教你構建一個完整的工程

    手把手教你構建一個完整的工程
    發表于 08-03 09:54 ?33次下載
    <b class='flag-5'>手把手</b>教你構建一個完整的<b class='flag-5'>工程</b>

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

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

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

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

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

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

    手把手教你安裝Quartus II

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

    手把手教學Ansoft-Maxwell-工程仿真實例

    手把手教學Ansoft-Maxwell-工程仿真實例
    發表于 01-18 16:06 ?33次下載

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

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

    手把手教你學LabVIEW視覺設計

    手把手教你學LabVIEW視覺設計手把手教你學LabVIEW視覺設計手把手教你學LabVIEW視覺設計手把手教你學LabVIEW視覺設計手把手
    發表于 03-06 01:41 ?3144次閱讀

    手把手教你開關電源PCB排板

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

    手把手教你學FPGA仿真

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

    手把手帶你移植HAL庫函數

    開發者更高效地進行嵌入式開發。手把手帶你移植HAL庫函數HAL庫提供了一套抽象接口,使開發者無需直接操作底層硬件寄存器,就能實現對硬件的控制。這種抽象使得代碼能夠更
    的頭像 發表于 05-18 08:04 ?1966次閱讀
    <b class='flag-5'>手把手</b><b class='flag-5'>帶你</b>移植<b class='flag-5'>HAL</b>庫函數
    主站蜘蛛池模板: 8X拨牐拨牐X8免费视频8| www.99在线| 国产熟妇无码一区二| 亚洲黄视频在线观看| 久草青青在线| 97人人看碰人免费公开视频| 秋葵app秋葵官网18在线观看| 国产国产成年在线视频区| 亚洲精品一二三区-久久| 久久久精品久久久久特色影视| 99麻豆精品国产人妻无码| 外女思春台湾三级| 久久久久久久99精品免费观看| vagaa哇嘎黄短片| 亚洲国产精品天堂在线播放| 奶头好翘是不是想要了| 国产电影午夜成年免费视频| 伊人久久大香线蕉综合bd高清| 嫩小幼处在线| 国产亚洲精品久久久无码狼牙套| 68日本xxxxxxxx79| 性色AV一区二区三区V视界影院 | 久久er99热精品一区二区| 99在线精品国自产拍| 亚洲精品动漫免费二区| 欧美zzo交| 和I儿媳妇激情| 成人免费在线| 中文字幕欧美日韩VA免费视频| 试看做受120秒免费午夜剧场| 老师洗澡让我吃她胸的视频 | 久久se精品一区二区国产| 北条麻妃快播| 中文无码热在线视频| 午夜色网站| 欧洲美女人 一级毛片| 久久精品电影久久电影大全| 国产高清亚洲| 超碰日韩人妻高清视频| 中文字幕在线视频免费观看| 亚洲精品91|