chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

手把手帶你創(chuàng)建HAL版本MDK工程模板

dyquk4xk2p3d ? 來源:良許Linux ? 2023-11-20 10:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

1. 源碼下載及前置閱讀

如果大家跟著本教程學(xué)習(xí)還是無法自己創(chuàng)建 HAL 版本的 MDK 工程模板,那么可以參考我給大家準(zhǔn)備的源文件。

源碼及本文所需要的固件包已經(jīng)為大家準(zhǔn)備好了,大家可以添加良許微信免費獲取(備注1120):

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

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

2. 文件下載

可以根據(jù)以下步驟找到官方固件包:

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

可以根據(jù)以下步驟找到官方固件包:

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

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

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

3. 新建工程文件夾

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

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

創(chuàng)建的工程模板由下面 5 個目錄構(gòu)成:

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

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

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

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

3.1 Drivers文件夾

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

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

3.1.1 BSP文件夾

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

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

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 目錄,但這個目錄我也不知道哪里去搞,大家可以從我給大家提供的模板工程里直接復(fù)制即可。

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

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

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

3.1.3 SYSTEM文件夾

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

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

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

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

3.1.4 STM32F1xx_HAL_Driver文件夾

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

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

這里使用的是 V1.8.5 ,當(dāng)前最新版。

但進到這個目錄后會發(fā)現(xiàn),里面有很多東西,我們刪掉其余的內(nèi)容,只保留 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文件夾

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

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

如果你使用其它開發(fā)工具,那么就創(chuàng)建一個對應(yīng)的文件夾就可以了。

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

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

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

5. 添加文件

5.1 創(chuàng)建目標(biāo)及分組

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 添加驅(qū)動文件

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

到這一步就已經(jīng)將所有的文件添加完畢了。但此時你們會發(fā)現(xiàn)驅(qū)動文件前面會有個小鑰匙,如下圖示:

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

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

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

6. 魔術(shù)棒設(shè)置

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. 燒錄驗證

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

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

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

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

審核編輯:湯梓紅

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

    關(guān)注

    2293

    文章

    11032

    瀏覽量

    365081
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3689

    瀏覽量

    95271
  • MDK
    MDK
    +關(guān)注

    關(guān)注

    4

    文章

    211

    瀏覽量

    32699
  • 工程模板
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

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

    關(guān)注

    2

    文章

    72

    瀏覽量

    13122

原文標(biāo)題:手把手帶你創(chuàng)建HAL版本MDK工程模板

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(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

    手把手教大家創(chuàng)建基于GD32F303VE項目的工程模板

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

    工程模板創(chuàng)建步驟

    工程模板創(chuàng)建步驟1、創(chuàng)建步驟2、一些問題ARM編譯器不能編譯1、創(chuàng)建步驟關(guān)于工程
    發(fā)表于 01-12 07:32

    手把手教你構(gòu)建一個完整的工程

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

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

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

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

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

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

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

    手把手教你安裝Quartus II

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

    手把手教學(xué)Ansoft-Maxwell-工程仿真實例

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

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

    手把手教你如何開始DSP編程。
    發(fā)表于 04-09 11:54 ?13次下載
    <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 ?3328次閱讀

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

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

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

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

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

    開發(fā)者更高效地進行嵌入式開發(fā)。手把手帶你移植HAL庫函數(shù)HAL庫提供了一套抽象接口,使開發(fā)者無需直接操作底層硬件寄存器,就能實現(xiàn)對硬件的控制。這種抽象使得代碼能夠更
    的頭像 發(fā)表于 05-18 08:04 ?3408次閱讀
    <b class='flag-5'>手把手</b><b class='flag-5'>帶你</b>移植<b class='flag-5'>HAL</b>庫函數(shù)