STM32筆記(9):使用STM32CubeMX與Keil開發環境

先前撰寫的STM32程式是在 Arduino IDE 環境下編寫及上傳 STM32 系統開發板,操作的方法可參考我的另一篇文章:STM32筆記(1):我的第一個STM32程式,使用Arduino IDE 介面。 而STM32 也有自己官方的 IDE 及開發環境,最常見的是 STM32CubeMX 和 STM32CubeIDE,但大部分 ARM 系統開發人員會用的 Keil MDK(Microcontroller Developer Kit的簡稱) 或稱為 uVision,不用STM32CubeIDE,可能是 Keil 比較簡單易用的關係吧,但各有其優點,我個人是偏好 Keil。
剛開始學習 STM32時,只知道這幾個名詞,不知如何動手編寫程式,看了好幾天的教學影片及文件,才有點瞭解 STM32CubeMX 與 Keil MDK 開發工具的關係,CubeMX 是一個視覺化的程式撰寫工具,將 STM32 微處理器所要執行的動作、震盪頻率、連線方式等動作,以圖形化的方式進行設定,再產生可供編輯/編譯的 C 語言原始程式碼,再使用開發工具如 Keil 編輯/編譯程式碼,產生可下載到 STM32 系統開發板的二進位執行檔,再透過 ST-Link 連接,讓 Keil、CubeIDE 或 Eclipse 等開發工具進行編輯與編譯,或直接將編譯好的可執行檔案下載至開發板的 Flash 記憶體。程式編寫的流程如下圖:

(1)安裝並啟動STM32CubeMX
STM32CubeMX是一套圖形工具,使用一個非常簡單的結構來處理 STM32 微控制器和微處理器,並產生對應初始化的 C 語言程式碼,STM32CubeMX提供了統一介面API,若工程師要變動升級硬體產品,只要從底層直接抽換即可,此一硬體抽象層概念讓API成為可攜帶式。
安裝 STM32CubeMX 前,請先確認是否已經安裝 Java JRE,如果沒有安裝,可到 Oracle 官網下載安裝 JRE 程式。
要下載STM32CubeMX 可以在 官方網站 下載最新版本,下載前需先在ST官方網站申請註冊一個帳號,登入帳號後才能進行下載。目前最新的版本是V6.1.1,按下    Get Software  進行下載,如下圖:

安裝 STM32CubeIDE 的過程需要經安裝者同意授權相關規定、意法半導體的隱私權聲明等,繼續會出現安裝路徑、程式的捷徑及啟動選單等,安裝就完成了,應該沒有難度才對。啟動 STM32CubeMX後的畫面如下圖:

(2)安裝開發板擴充程式庫
STM32CubeMX安裝完成,僅有基礎的功能,沒有安裝微處理器套件的擴充程式庫,這樣有個好處是,不用一開始就將所有的程式庫安裝進來,可以節省很多空間,其次是微處理器的版本太多,有需要再安裝即可。也就是一開始那張流程圖中(2)Embedded Software Package那部分。
安裝的方法是啟動 STM32CubeMX的主畫面,右方的 Install or Remove embedded...下方有個   INSTALL / REMOVE  的按鍵,可以依照您手邊的微處理器型號安裝不同的程式庫,以我的開發板為例,型號是 STM32F103C8T6,選擇畫面如下:

(3)產生C語言專案程式碼
選擇開發板的型號後,繼續進行相關設定,依照外部連接的不同設備的屬性設定 Input/Output、時脈等,完成後存檔。按下   GENERATE GODE  (如下圖紅框處)產生可供編輯的 C 語言程式碼。
之後的幾個實作會用到這個功能來產生專案的 C 語言原始程式碼,記得要將輸出的 Toolchain/IDE 選擇 MDK-ARM ,才會產生 Keil 可以讀取的專案檔。



(4)使用Keil MDK 編譯程式

Keil MDK是 Microcontroller Developer Kit的簡稱,舊稱 RealView MDK,也稱作 Realview MDK、I-MDK、uVision 等,這套開發工具源自德國Keil公司,為 Cortex-M、Cortex-R4、ARM7、ARM9 處理器設備提供的一個完整開發環境。
要使用 Keil MDK 可到 官方網站 下載,按下下圖紅框處進行下載,下載前要先輸入個人的資訊,輸入完成後就可開始下載程式。執行後預設安裝在C:\Keil_v5目錄中,一直按下一步,輸入個人資訊,包含名字、Email等資訊完成安裝。


由 CubeMX 產生的專案及程式,放在專案名稱目錄下的 MDK-ARM 內,進入目錄後,會看到一個副檔名為 .uvprojx 的檔案,再用 KEIL來開啟專案。或是執行 KEIL uVision 程式,再開啟.uvprojx專案檔,如要編輯可修改左方視窗內的 main.c ,找到 int main(void)這段程式,程式通常會從這裡開始。修改好程式後,按下 build 開始編譯程式,如果沒有錯誤,會產生可執行的檔案。

有關Keil 環境的編譯及下載工具列圖示如下:

(5)下載程式到STM32系統開發板
下載編譯完成的檔案到開發板前,要先確定開發板與電腦的連接方式,現在比較常見且價格比較便宜的是使用 ST-LINK,如果無法在裝置管理員中看到 ST-Link 的連線,可到 這裡 下載驅動程式。其他與ST-LINK類似的連接模擬器,包括Ulink2、J-Link,再依不同類型安裝對應的驅動程式。
要下載執行檔到 STM32 只要在 Keil 的編輯介面下,按下上圖的 LOAD 圖示,就可以在 Keil 上傳編譯後的執行檔到開發板。但是在上傳執行檔前,還有幾個選項要設定。先開啟 Keil 的主畫面,在功能表 Project下拉選單選擇「Options for Target <name>」,開啟視窗選擇,「Output」頁簽,勾選「Create HEX File」,如下圖:

再選擇「Debug」頁簽,選擇您使用的模擬器連接裝置,再按下右方的「Settings」,如下圖:

進入 Settings 的設定畫面,選擇「Flash Download」頁簽,勾選「Reset and Run」,如下圖:

這時回到Keil的編輯畫面,按下 Load 圖示,就可順利將執行檔下載到開發板了。
說明完操作的步驟後,下一篇實作將開始運用這個發展流程,試著讓開發板的 LED 燈閃爍。

[參考資料]

1 留言

張貼留言

較新的 較舊