本篇參考 《傳感網(wǎng)應用開發(fā)職業(yè)技能等級認證》培訓教材
1.建立工程存放的文件夾
在 D 盤根目錄新建文件夾“STM32_WorkSpace”用于保存所有的任務工程,然后在該文件夾下新建文件夾“task1_ProjectFirst”用于保存本任務工程概龄;不能有中文路徑勇哗;
2.新建 STM32CubeMX 工程
打開 STM32CubeMX 工具崔步,點擊“ACCESS TO MCU SELECTOR(選擇 MCU)”按鈕场梆,如圖圖1所示厢岂;
進入“MCU 選擇”窗口,如圖 2 所示而叼。在圖 2 中的標號①處姿骏,輸入 MCU 型號的關鍵字稽荧,如:STM32F103VE。點擊標號②處的MCU 型號工腋,然后點擊標號③處的“Start Project”按鈕新建 STM32CubeMX 工程;
3.配置調(diào)試端口
以 ST-Link 仿真器為例畅卓,講解調(diào)試端口的配置過程擅腰。
展開“Pinout & Configuration”標簽頁左側的“System Core(系統(tǒng)內(nèi)核)”選項(圖 3中標號①處),選擇“SYS(系統(tǒng))”選項(圖 3 中標號②處)翁潘,將“Debug(調(diào)試)”下拉菜單改為“Serial Wire(串口線)”選項(圖 3中標號③處)趁冈。即可將“PA13”引腳配置為 SWDIO 功能(圖 3 中標號⑤處),“PA14”引腳配置為 SWCLK 功能(圖 3 中標號④處)
4.配置 MCU 時鐘樹
選擇“Pinout & Configuration”標簽頁左側的“RCC(復位、時鐘配置)”選項渗勘,如圖 4 的標號①所示沐绒。將 MCU 的“High Speed Clock(HSE,高速外部時鐘)”配置為
“Crystal/Ceramic Resonator(晶體/陶瓷諧振器)”旺坠,如圖 4的標號②所示乔遮。同樣地,將 MCU 的“Low Speed Clock(LSE取刃,低速外部時鐘)”配置為“Crystal/Ceramic Resonator(晶體/陶瓷諧振器)”蹋肮,如圖 4的標號③所示。配置完畢后璧疗,MCU 的“Pinout View(引腳視圖)”中相應的引腳功能將被配置坯辩,如圖 4中的標號④和⑤所示。
切換到“Clock Configuration(時鐘配置)”標簽崩侠,進行 STM32 微控制器的時鐘樹配
置漆魔,如圖 5 所示。圖中各個標號的含義如下:
標號①:“PLL Source MUX(鎖相環(huán)時鐘源選擇器)”的時鐘源選擇為“HSE”却音,即:8MHz外部晶體諧振器改抡;
標號②:“PLLMul(鎖相環(huán)倍頻)”配置為“9”;
標號③:“System Clock MUX(系統(tǒng)時鐘選擇器)”的時鐘源選擇為“PLL”僧家;
標號④:配置“SYSCLK(系統(tǒng)時鐘)”為 72MHz雀摘;
標號⑤:配置“HCLK(高性能總線時鐘)”為 72MHz;
標號⑥:配置“Cortex System timer(Cortex 內(nèi)核系統(tǒng)嘀嗒定時器)”的時鐘源為 HCLK的八分之一八拱,即:9MHz阵赠;
標號⑦:配置“APB1 Peripheral clocks(低速外設總線時鐘)”為 HCLK 的二分頻,即:36MHz肌稻。
標號⑧:配置“APB2 Peripheral clocks(高速外設總線時鐘)”為 HCLK 的一分頻清蚀,即:72MHz。
5.配置 GPIO 功能
開發(fā)板的“PE6”引腳與 LED 燈——“LED2”相連爹谭。在 STM32CubeMX 工具的配置主界面枷邪,用鼠標左鍵點擊 MCU 的“PE6”引腳處,選擇功能“GPIO_Output”诺凡。如圖 6所示东揣。
然后用鼠標右鍵點擊“PE6”引腳,選擇“Enter User Label”選項腹泌,輸入值“LED2”嘶卧,將“PE6”引腳的“用戶標簽”值配置為“LED2”,點擊“GPIO”,選中“PE6”,確保 PE6 引腳的配置如圖 7 中的④~⑥所示凉袱。
6.保存 STM32CubeMX 工程
點擊“File(文件)”菜單芥吟,選擇“Save Project(保存工程)”選項侦铜,如圖 8 中標號①和標號②所示。然后定位到文件夾“D:\STM32_WorkSpace\task1_ProjectFirst”钟鸵,點擊“確定”保存 STM32CubeMX 工程钉稍;
7.生成 C 代碼初始工程
切換到“Project Manager(工程管理)”標簽,進行“C 代碼工程”的配置棺耍,如圖 9所示贡未。
點擊左側“Code Generator(代碼生成)”配置標簽,將“STM32Cube Firmware Library
Package”單選框的選項改為“Copy only the necessary library files”烈掠,如圖 9中的標號①所示羞秤。在“Generated files”復選框中增加勾選“Generate peripheral initializationas a pair of “.c/.h” files per peripheral”選項。如圖 9 中標號②所示左敌。點擊左側的“Project(工程)”配置標簽進行“C 代碼工程”保存的相關配置瘾蛋。由于之前已保存過 STM32CubeMX 的工程,因此“Project Name(工程名)”和“Project Location(工程存放位置)”處的信息已填好(分別如圖 10 的標號①和標號②處所示)矫限。
點擊圖 10 中的“Toolchain/IDE”下拉菜單(圖 10中標號③處)哺哼,選擇集成開發(fā)環(huán)境為“MDK-ARM V5”。最后點擊“GENERATE CODE(生成代碼)”按鈕(圖 10中標號④處)叼风,即可生成相應的C 代碼工程取董。
8.完善 main()函數(shù)
生成的 C 代碼工程位于工程文件夾中的“MDK-ARM”中,如圖 11中的標號①處所示无宿。雙擊工程文件(圖 11中標號②處)茵汰,使用 MDK-ARM 工具打開:
打開后的工程如圖 12 所示,展開左側的“工程列表”窗口孽鸡,打開“main.c”文件(圖 12 的標號①處)蹂午,在 while(1)代碼段中添加標號②處所示的兩行代碼。
9. C 代碼工程配置
點擊快捷工具欄中的魔術棒圖標進行 C 代碼工程的配置(圖 13 中標號①處)彬碱。切換到“Debug”標簽(圖 13 中標號②處)豆胸,選擇相應的調(diào)試工具,如:ST-Link Debugger(圖 13 中標號③處)巷疼。
點擊圖 13 中的“Settings”按鈕(標號④處)進入“調(diào)試與下載配置”界面晚胡,將調(diào)試工具端口改為“SW”,如圖 14 子圖(a)中標號①處所示嚼沿。如果 STM32 微控制器連接正常估盘,則會在右上角的“SW Device”窗口看到已連接的設備(圖 14 子圖(a)中標號②處)。點擊“Flash Download”標簽切換到“下載配置”界面(圖 14 子圖(b)中的標號③處)骡尽,勾選“Reset and Run”選項(圖 14 子圖(b)中的標號④處)忿檩。經(jīng)過這樣的配置以后,程序下載到 STM32 開發(fā)板后會自動重啟并運行爆阶。
9. 編譯工程、下載并運行
將 M3 主控模塊板的 JP1 撥碼開關撥向“boot”模式,如圖16 M3 主控模塊板燒寫設置所示辨图“嗵祝可點擊工具欄中的“Build(F7)”按鈕進行工程的編譯。編譯無誤后故河,點擊工具欄中的“DownLoad(F8)”按鈕進行工程的下載并運行吱韭。如圖 16 中的標號①和標號②處所示。燒寫完成后鱼的,再撥到NC模式理盆,按復位鍵,觀察LED燈凑阶;
本工程運行的現(xiàn)象是 LED2 閃爍猿规,亮 1 秒滅 1 秒,周期為 2 秒宙橱。
——————————————————————————————
總結:基于微控制器最小系統(tǒng)運行原理姨俩,工程創(chuàng)建的關鍵步驟是對MCU的必要資源進行配置,其中下載端口配置师郑,MCU時鐘配置是每一個工程項目創(chuàng)建都必須的步驟环葵;另外,注意工程創(chuàng)建的英文路徑宝冕,以及保存工程前的基本配置张遭;在編譯工程,下載并運行環(huán)節(jié)地梨,
參考文檔,菊卷,可以幫助理解ST-LINK下載原理和BOOT啟動模式;
(https://blog.csdn.net/wwt18811707971/article/details/78678059?utm_medium)