本文主要分為三部分,第一部分介紹正點(diǎn)原子STM32探索者開發(fā)板外觀和配套資料如何下載,第二部分介紹如何搭建CubeMX+Keil開發(fā)環(huán)境,第三部分介紹如何使用CubeMX和Keil一步步創(chuàng)建出一個(gè)點(diǎn)亮LED燈的項(xiàng)目。搭建開發(fā)環(huán)境部分,包括安裝Keil MDK、安裝STM32 CubeMX、安裝STM32F4系列MCU的Keil支持包。創(chuàng)建項(xiàng)目部分,包括查看原理圖、創(chuàng)建STM32 CubeMX項(xiàng)目、配置系統(tǒng)時(shí)鐘和引腳功能、生成Keil項(xiàng)目、編寫點(diǎn)燈代碼、修改調(diào)試器設(shè)置、下載程序到開發(fā)板等非常詳細(xì)的操作步驟,零基礎(chǔ)小白也可以順利上手。
一、簡(jiǎn)單開箱
感謝電子發(fā)燒友平臺(tái)組織本次試用活動(dòng),也感謝廣州市星翼電子科技有限公司為我們提供的正點(diǎn)原子STM32探索者V3開發(fā)板。
正點(diǎn)原子開發(fā)板的做工還是非常扎實(shí)的,所以這里還是貼兩張實(shí)拍圖作一個(gè)簡(jiǎn)單的開箱。
拆開快遞紙箱子之后,可以看到正點(diǎn)原子開發(fā)板的黑色包裝盒子,非常大氣:
打卡包裝盒,可以看到開發(fā)板和一個(gè)白色紙盒(12V電源適配器):
包裝盒內(nèi)除了開發(fā)板12V電源適配器外,還有幾個(gè)配件位于固定模具下面:
- 一根USB Type-C數(shù)據(jù)線;
- 一個(gè)紅外遙控器;
- 兩根杜邦線;
打開泡沫袋,可以看到開發(fā)板正面,非常精美:
開發(fā)板正反兩面都裝有透明亞克力,這樣既可以保護(hù)板上的元件不易受損,也讓開發(fā)板看起來更精致、美觀,同時(shí)還可以防塵。
可以看到主控芯片的型號(hào)是——STM32F407ZGT6。
二、資料下載
正點(diǎn)原子官網(wǎng)提供了正點(diǎn)原子STM32探索者V3開發(fā)板配套資料,網(wǎng)頁鏈接: http://www.openedv.com/docs/boards/stm32/zdyz_stm32f407_explorerV3.html
比較重要的是:
- 開發(fā)板資料A盤
- 鏈接: https://pan.baidu.com/s/1C5Yx-lwa_Dmn8UwgSz8YTw
- 提取碼:rqn5
其中,原理圖、硬件資料是必須下載的,其他文檔資料可按需下載。
三、環(huán)境搭建
接下來是搭建 STM32CubeMX + Keil 開發(fā)環(huán)境,基本上也沒啥難度。
3.1 安裝Keil MDK
Keil產(chǎn)品下載頁面: https://www.keil.com/download/product/
單擊“MDK-ARM”,進(jìn)入MDK最新版下載頁面:https://www.keil.com/demo/eval/arm.htm
當(dāng)前最新版5.38a本,下載鏈接: https://armkeil.blob.core.windows.net/eval/MDK538a.EXE
PS: 國(guó)內(nèi)下載速度較慢,可以用某雷加速下載。
3.2 激活Keil MDK
KeyGen程序(可以生成2032年的,親測(cè)有效): https://pan.baidu.com/s/1oZPXu8OkkZ2EXuePwGbu0A?pwd=keil
下載完成后,解壓開keil_keygen_2032。
Keil MDK安裝好了之后,打開Keil uVision5。通過 File→License Management菜單,打開License Management界面。在License Management界面中,復(fù)制CID。
打開keil_keygen_2032.exe,粘貼CID,Target選擇ARM,點(diǎn)Generate生成License ID Code(LIC)。將生成的LIC復(fù)制到Keil的License Management界面,粘貼到“New License ID Code”文本框中,點(diǎn)”Add LIC”即可激活Keil。
3.3 安裝STM32CubeMX
首先需要下載STM32CubeMX。
STM32CubeMX下載頁面:https://www.st.com/zh/development-tools/stm32cubemx.html
需要登錄ST賬號(hào)之后才能下載,如果沒有ST賬號(hào),則需要先注冊(cè)ST賬號(hào)。
安裝STM32CubeMX沒啥難度,按照安裝向?qū)?,一路下一部就好了?/p>
3.4 安裝STM32F4系列MCU的Keil支持包
Keil MDK 官方提供了STM32F4系列MCU支持包,下載頁面:https://www.keil.com/dd2/Pack/
PS:此頁面上廠商和產(chǎn)品比較多,可以使用Ctrl+F在網(wǎng)頁上快速查找:“STM32F4”
STM32F4系列MCU的Keil MDK支持包下載鏈接為: https://keilpack.azureedge.net/pack/Keil.STM32F4xx_DFP.2.17.0.pack
下載完成后,如果你已經(jīng)成功安裝了Keil,則直接雙擊pack文件,按照向?qū)崾炯纯砂惭b該支持包。
安裝好Keil MDK、STM32CubeMX和STM32F4系列MCU的Keil支持包,STM32CubeMX+Keil開發(fā)環(huán)境就搭建完成了。
四、GPIO點(diǎn)燈
接下來就是使用STM32CubeMX+Keil開發(fā)環(huán)境進(jìn)行點(diǎn)燈了,這里建議另外配備一個(gè)硬件調(diào)試器,CMSIS-DAP、DAPLink、JLink或STLink均可。
4.1 查閱開發(fā)板原理圖
解壓網(wǎng)盤資料的**【正點(diǎn)原子】探索者STM32F407開發(fā)板V3 資料盤(A盤)\3,原理圖.zip** 文件,其中的 Explorer STM32F4_V3.2_SCH.pdf 文件即為開發(fā)板原理圖。
點(diǎn)燈之前,我們需要在開發(fā)板原理圖上找到LED燈相關(guān)的部分。
可以看到:
- LED0連接在PF9引腳,低電平點(diǎn)亮;
- LED1連接在PF10引腳,低電平點(diǎn)亮;
4.2 創(chuàng)建STM32CubeMX項(xiàng)目
打開STM32CubeMX,界面如下圖:
點(diǎn)擊New Project下方的“Access to MCU Selector”,彈出MCU/MPU選擇界面,如下圖:
在左上方的Commercial Part Number處輸入主控芯片型號(hào)——STM32F407ZGT6 后,鼠標(biāo)選中右下角的STM32F407ZGT6,界面如下圖:
此時(shí),右上角的Start Project按鈕從灰色變?yōu)榱怂{(lán)色(可以點(diǎn)擊的狀態(tài)),點(diǎn)擊Start Project開始STM32CubeMX項(xiàng)目:
此時(shí),STM32CubeMX項(xiàng)目已創(chuàng)建成功,按Ctrl+S,選擇合適的路徑,可以保存項(xiàng)目,例如我選擇的目錄為D:\Hardware\ST\ExplorerV3_STM32F407\Elecfans_01\Blinky,保存到的文件名為Blinky.ioc。
4.3 配置系統(tǒng)時(shí)鐘和引腳功能
接下來在STM32CubeMX中配置系統(tǒng)時(shí)鐘源和LED引腳功能。
首先,設(shè)置系統(tǒng)時(shí)鐘源。具體操作為,展開左側(cè)“System Core”菜單,選中“RCC”,
修改中間的RCC Mode and Configuration配置:
- High Speed Clock 修改為 “Crystal/Cemaric Resonator”
- Low Speed Clock 修改為 “Crystal/Cemaric Resonator”
即兩個(gè)時(shí)鐘源都設(shè)置為外部晶振,響應(yīng)的,右側(cè)引腳視圖中四個(gè)引腳由灰色變?yōu)榱司G色,表示已經(jīng)被設(shè)定了功能。
Ctrl+S保存。
接著,設(shè)置系統(tǒng)時(shí)鐘配置。
切換到Clock Configuration標(biāo)簽頁,HCLK值輸入100,回車,CubeMX將會(huì)自動(dòng)計(jì)算相關(guān)參數(shù),如下圖所示:
Ctrl+S保存。
最后,設(shè)置LED引腳功能。
切回到Pinout&Configuration標(biāo)簽頁,先找到PF9,下拉選擇引腳功能為GPIO_Output,如下圖所示:
再將鼠標(biāo)移動(dòng)到PF9上,右鍵點(diǎn)擊,如下圖所示:
選擇Enter User Label,輸入LED0(和原理圖中的標(biāo)號(hào)對(duì)應(yīng));
類似的,將PF10設(shè)置為GPIO_Output功能,并為其設(shè)置User Label為L(zhǎng)ED1,設(shè)置完成后,如下圖所示:
Ctrl+S保存。
4.4 生成Keil項(xiàng)目
接下來,使用STM32CubeMX生成Keil項(xiàng)目。
首先,STM32CubeMX切換到Project Manager標(biāo)簽頁,然后將Project -> Toolchain/IDE 設(shè)置為MDK-ARM,如下圖所示:
接著,左側(cè)點(diǎn)擊Code Generator,如下圖所示:
圖中,已進(jìn)行了如下設(shè)置:
- STM32Cube MCU packages and embedded software packs,選擇Copy only necessary library files,即只拷貝必要的文件,默認(rèn)是第一個(gè)拷貝所有庫文件到項(xiàng)目中;
- Generated files,選擇Generate peripheral initialization as a pair of ‘.c/.h’ files per peripheral,即每個(gè)外設(shè)的初始化生成獨(dú)立的.c/.h文件,默認(rèn)沒有選擇這個(gè)選項(xiàng),各個(gè)外設(shè)初始化代碼也會(huì)在main.c里面;
繼續(xù)Ctrl+S保存。
最后,點(diǎn)擊右上角的Generate Code,就會(huì)開始生成代碼;代碼生成完成后,會(huì)彈出提示框,告訴你代碼已經(jīng)生成了,如下圖所示:
這里點(diǎn)擊Open Folder即可打開文件夾,可以查看到生成目錄及其文件:
4.5 打開Keil項(xiàng)目
打開其中的MDK-ARM目錄,可以看到如下文件:
其中的Blinky.uvprojx即為Keil的項(xiàng)目文件。
雙擊打開Blinky.uvprojx,如果已經(jīng)安裝了Keil,將會(huì)使用Keil打開項(xiàng)目,如下圖所示:
左側(cè)Project視圖中,可以看到整個(gè)項(xiàng)目的文件結(jié)構(gòu)。
4.6 編譯Keil項(xiàng)目
點(diǎn)擊Keil的Build圖標(biāo),或者按F7快捷鍵,將會(huì)開始編譯:
由于我安裝的Keil版本比較新,這里直接編譯會(huì)報(bào)錯(cuò),如下圖所示:
報(bào)錯(cuò)說沒有ARM-Compiler Version 5。
【解決方法】切換默認(rèn)編譯器,具體操作為:
-
鼠標(biāo)右擊Project視圖中的Blinky目錄,選擇“Options for Target - Blinky”,彈出菜單,如下圖所示:
-
在彈出的Options for Target - Blinky界面中,下拉ARM Compiler,選擇Use default compiler version 6,即使用默認(rèn)的版本6編譯器;
-
點(diǎn)擊底部的OK,確認(rèn)。
完成上述步驟后,再次點(diǎn)擊編譯按鈕,將會(huì)可以正常編譯,此時(shí)Build Output輸出如下:
截至到這里,Keil項(xiàng)目中的所有代碼都是STM32CubeMX自動(dòng)生成的,可以正常編譯通過,說明我們的開發(fā)環(huán)境搭建正常沒有問題。
4.7 編寫點(diǎn)燈代碼
接下來在Keil中,添加點(diǎn)燈代碼。
打開main.c文件,找到main函數(shù)中的while(1)循環(huán),添加如下3行代碼行:
HAL_Delay(1000);
HAL_GPIO_TogglePin(LED0_GPIO_Port, LED0_Pin);
HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin);
如下圖所示:
Ctrl+S保存;
再次編譯,可以編譯通過,則表示代碼沒有語法錯(cuò)誤。
4.8 準(zhǔn)備開發(fā)板和調(diào)試器
接下來進(jìn)入壓軸戲,下載程序到我們的正點(diǎn)原子STM32探索者V3開發(fā)板。
開始之前,首先為連接開發(fā)板連接電源和調(diào)試器:
- 電源,可以使用12V電源適配器查到DC_IN口(適配器插在220V市電上),也可以使用USB Type-C線插到USB_UART口(另一端連接到PC);
- 調(diào)試器,我這里使用的是JLINK調(diào)試器,連接在板子的JTAG口上(另一端連接到PC);
4.9 修改Keil項(xiàng)目的調(diào)試設(shè)置
完成上述硬件連接后,還需要修改Keil項(xiàng)目的調(diào)試設(shè)置,具體操作如下(這里以JLink為例):
-
鼠標(biāo)右擊Project視圖中的Blinky目錄,選擇“Options for Target - Blinky”,彈出菜單,如下圖所示:
-
在彈出的Options for Target - Blinky界面中,切換到Debug標(biāo)簽頁面,如下圖所示:
-
Use右邊的下拉,選擇J-LINK/J-TRACE Cortex,然后點(diǎn)擊右側(cè)的Settings,彈出Cortex JLink/JTrace Target Driver Setup界面,如下圖所示:
這里看到成功識(shí)別了 ARM CoreSight JTAG-DP,說明JLINK調(diào)試器已經(jīng)成功識(shí)別到主控芯片了。
-
點(diǎn)擊界面中的Auto Clk,可以自動(dòng)選擇最佳速度,彈框如下,點(diǎn)擊確定即可:
-
切換到Flash Download標(biāo)簽頁,勾選Reset and Run,便于調(diào)試,如下圖所示:
-
最后點(diǎn)擊確定,回到Options for Target - Blinky界面,點(diǎn)擊OK,保存設(shè)置;
4.10 下載程序到開發(fā)板
完成前面的一些列操作之后,就可以點(diǎn)燈了。
PS:雖然,這些東西對(duì)于我們這些玩板子的發(fā)燒友來說非常簡(jiǎn)單,對(duì)于新手小白還是有點(diǎn)繁瑣的,這是我為什么要詳細(xì)記錄下來的原因。
點(diǎn)擊Keil中的下載按鈕,或者F8快捷鍵,將會(huì)開始下載,如下圖:
下載完成后,Build Output可以看到成功的提示:
文章來源:http://www.zghlxwxcb.cn/news/detail-840532.html
并且,可以看到開發(fā)板上的LED燈閃爍了:文章來源地址http://www.zghlxwxcb.cn/news/detail-840532.html
五、參考鏈接
- 正點(diǎn)原子資料下載中心 STM32F407探索者開發(fā)板V3: http://www.openedv.com/docs/boards/stm32/zdyz_stm32f407_explorerV3.html
- STM32CubeMX下載頁面: https://www.st.com/zh/development-tools/stm32cubemx.html
- STM32F4系列MCU的Keil MDK支持包: https://keilpack.azureedge.net/pack/Keil.STM32F4xx_DFP.2.17.0.pack
到了這里,關(guān)于【正點(diǎn)原子STM32探索者】CubeMX+Keil開發(fā)環(huán)境搭建的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!