前一篇文章「STM32筆記(9):CubeMX與Keil開發環境」說明如何編寫程式前的準備,讓 STM32CubeMX 和 Keil 協同運作。本篇就用一般開發人員會寫的第一個程式:讓LED 閃爍為範例,看一下如何在 STM32CubeMX 設定好輸出輸入端口後,產生 C 語言原始程式碼讓 Keil 編寫簡單的邏輯,並編譯下載到開發板上執行。
選定微處理器或開發板型號,按下圖紅色框的 Start Project ,進如編輯模式:
選擇[SYS],在 Debug 選定 Serial Wire ,如下圖紅框處:
點選右方晶片引腳 PC13 設定為 Output,並在左方中央的視窗,設定[Maximum output speed]為 High 高速,並將 User Label 重新命名為 LED或您容易記住的名稱,可依下圖順序進行設定:
點選[Clock Configuartion]頁簽,設定高速時鐘 HCLK為 72 MHz,如下圖:
輸入自訂的專案名稱,下方要選擇[MDK-ARM],如下圖:
存檔完成後,就可以按下右上方的 GENERATE CODE 產生程式碼,產生完成後,會出現以下視窗,按下 Open Folder 可以開啟產生程式的目錄 。
進入MDK-ARM目錄後,會看到一個 CubeMX_LED.uvprojx 檔案,稍後使用 KEIL來開啟。
下載程式到開發板前,要先確定連接 STM32 與電腦的方式,我用的是 ST-Link V2,這是一款支援 STM32/STM8 燒錄的工具,拍賣網站上很容易找到,價格也便宜。驅動程式可到 官方網站 下載。安裝完成後,就可以在 Keil 上傳編譯完成的程式。
[接線圖]
STM32F103C8T6 | ST-Link(Pin) | |
---|---|---|
GND | GND(6) | |
3.3V | 3.3V(8) | |
SWCLK | SWCLK(2) | |
SWO | SWDIO(4) |
[啟動CubeMX,產生C語言程式碼]
啟動程式,按下 ACCESS TO MCU SELECTOR 依照微處理器的型號選擇,或按下 ACCESS TO BOARD SELECTOR 依開發板的型號選擇,如下圖紅框處。選定微處理器或開發板型號,按下圖紅色框的 Start Project ,進如編輯模式:
選擇[SYS],在 Debug 選定 Serial Wire ,如下圖紅框處:
點選右方晶片引腳 PC13 設定為 Output,並在左方中央的視窗,設定[Maximum output speed]為 High 高速,並將 User Label 重新命名為 LED或您容易記住的名稱,可依下圖順序進行設定:
點選[Clock Configuartion]頁簽,設定高速時鐘 HCLK為 72 MHz,如下圖:
輸入自訂的專案名稱,下方要選擇[MDK-ARM],如下圖:
存檔完成後,就可以按下右上方的 GENERATE CODE 產生程式碼,產生完成後,會出現以下視窗,按下 Open Folder 可以開啟產生程式的目錄 。
進入MDK-ARM目錄後,會看到一個 CubeMX_LED.uvprojx 檔案,稍後使用 KEIL來開啟。
[啟動Keil MDK 編輯程式]
執行 Keil MDK 程式,並開啟稍早自動產生的 CubeMX_LED 專案檔。開啟左方視窗中的 main.c ,找到 int main(void)那段程式,在 while 迴圈中加入以下程式,如下圖。HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13); //GPIOC 第13 Pin 在Output/Input間切換 HAL_Delay(1000);按下 build 執行編譯,結果會在下方視窗呈現是否有錯誤發生,如果有Error,就需要修改到Error為 0,才可以產生執行碼,下載到 STM32 開發板上。
下載程式到開發板前,要先確定連接 STM32 與電腦的方式,我用的是 ST-Link V2,這是一款支援 STM32/STM8 燒錄的工具,拍賣網站上很容易找到,價格也便宜。驅動程式可到 官方網站 下載。安裝完成後,就可以在 Keil 上傳編譯完成的程式。
張貼留言