STM32CubeIDE下載安裝-GPIO基本配置操作-Debug除錯(基於CMSIS DAP Debug)

行者&無疆發表於2020-11-08

1、在ST官網下載STM32CubeIDE而不是STM32CubeMX,並且STM32CubeIDE是免費的。(STM32CubeIDE不支援中文路徑,不然編譯會出錯)

2、如果你用的是keil開發環境那麼 STM32CubeIDE =(STM32CubeMX + Keil)STM32CubeMX只是一個配置程式碼生成器

3、STM32CubeIDE 軟體下載連結:https://www.st.com/zh/development-tools/stm32cubeide.html#tools-software

4、STM32CubeMX 軟體下載連結:https://www.st.com/zh/development-tools/stm32cubemx.html

5、下載完成後開始安裝,可以修改安裝路徑,其餘全部按照預設即可(本次只安裝 STM32CubeIDE )

 6、安裝完成後開啟軟體,設定自己的工作環境路徑,點選Launch(路徑不能有中文,有中文會編譯錯誤)

 

 

 7、點選 Start new STM32 project 建立一個新的工程專案,輸入硬體上對應的晶片型號,點選Next,輸入工程名稱 BASIC_GPIO,點選Next 彈出對話方塊,點選Yes。

 

 

 8、建立完成之後,以下介面就是建立的新工程

 

 9、開始配置工程引數:1)配置SYS除錯方式,2)配置系統時鐘RCC,3)配置GPIO埠

10、配置除錯方式(debug方式根據自己的硬體選擇合適的選項,本次使用的是CMSIS DAP debug ,用的是野火指南者開發板選擇 JTAG ( 5 pins ) 

 

  11、配置系統時鐘RCC(採用外部晶振8MHz,最高主頻為72MHz)

 

 

 12、配置GPIO埠(本次硬體為野火指南者)以LED燈為例,硬體電路圖如下

 13、可以對每一個GPIO引數進行修改(在圖上對著對應引腳滑鼠左右點選可以配置,具體操作自己多點幾下就明白了)

 

 14、因為配置了GPIO外設埠,在以下位置修改生成對應的H檔案和C檔案

 

 15、點選儲存會彈出是否生成程式碼,點選是生成響應的程式碼,在以下位置可以看到生成程式碼

 

16、在位置1處右擊滑鼠選擇 Build Project 編譯工程專案程式,可以看到編譯後的程式碼情況

 

 17、現在開始編寫程式碼控制LED燈的狀態(本次使用的是HAL庫 <<HAL一般指硬體抽象層。硬體抽象層是位於作業系統 核心與硬體電路之間的介面層,其目的在於將硬體抽象化。它隱藏了特定平臺的硬體介面細節,為作業系統提供虛擬硬體平臺,使其具有硬體無關性,可在多種平臺上進行移植>> )

18、GPIO用的是HAL庫,大部分函式都是以HAL開頭的,在main程式中編寫以下程式碼,並編譯:(編輯程式碼的時候可以用程式碼補全功能快捷鍵: ALT+/ )新增的程式碼一定要在/* USER CODE BEGIN */和/* USER CODE END */之間,不然儲存或者編譯會把程式碼刪除掉。

 

19、編譯通過,開始除錯程式:通過軟體除錯來檢視Debug_num值的變化,和GPIO暫存器值的變化

20、在位置1(參看上邊第15步)右擊滑鼠->Debug As -> STM32 Cortex-M C/C++ Application

21、由於本次使用的是CMSIS DAP Debug(秉火D普通DAP模擬器)STM32CubeIDE預設不支援DAP的,但是通過ST-Link(OpenOCD間接支援),重點::::::《選擇連線到遠端GDB伺服器埠》

 

  22、配置完成之後,顯示沒有沒有ST-link

 

 22、出現錯誤顯示沒有ST-Link,是電腦沒有安裝相應的驅動

23、安裝ST-LinkOCD驅動,下載連結:https://gnutoolchains.com/arm-eabi/openocd/  下載完成後解壓開啟資料夾

 

24、在空白處按住Shift鍵右擊滑鼠開啟PowerShell視窗,以下命令按回車:./openocd -f interface/cmsis-dap.cfg -f target/stm32f1x.cfg  如果不成功多試幾次,在執行前最好把微控制器和電腦都連線好。

 

 25、回到STM32CubeIDE中,重新編譯程式,點選瓢蟲的那個按鈕,到以下介面

 

  26、根據LED燈的介面檢視對應的GPIO埠的ODR暫存器,可以看到數值的變化,同時觀察開發板的LED燈狀態。

 

 27、單擊全速執行按鈕,檢視開發板LED燈閃爍狀態。

 

 28、由於本次初始化的時候預設設定埠是低電平,也就是燈預設是亮的狀態,所以在LED_BLUUE閃爍的時候另外另個燈常亮,如何修改GPIO埠預設輸出的是高電平還是低電平,可以在以下位置修改。

 

相關文章