STM32筆記(10):第一個CubeMX與Keil程式讓LED閃爍

前一篇文章「STM32筆記(9):CubeMX與Keil開發環境」說明如何編寫程式前的準備,讓 STM32CubeMX 和 Keil 協同運作。本篇就用一般開發人員會寫的第一個程式:讓LED 閃爍為範例,看一下如何在 STM32CubeMX 設定好輸出輸入端口後,產生 C 語言原始程式碼讓 Keil 編寫簡單的邏輯,並編譯下載到開發板上執行。


[接線圖]

STM32F103C8T6ST-Link(Pin)
GNDGND(6)
3.3V3.3V(8)
SWCLKSWCLK(2)
SWOSWDIO(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 上傳編譯完成的程式。

[結果]


[參考資料]

Post a Comment

較新的 較舊