這是理科太太最愛用的開場白
我覺得很實用就搬來借用一下
很長一段時間沒有更新與單晶片有關的訊息
並不是已經脫離了單晶片
而是鑽得更深入後發現了新大陸
在眾說紛紜、無所適從的超大量文件中
找到了最適合自己理解的方法
並打算一系列整理好記錄在這裡
進入主題
今天要介紹的是STM32所推出的STM32CubeMX工具(以下簡稱CubeMX)
目前官方最新版本為5.3.0
如果用過以前4.x的版本
會發現新版本的畫面變得很華麗
畫面分頁的方式讓閱讀更直觀也更簡潔
但習慣了舊畫面的使用者可能需要一點時間適應
因為版面的編排位置有不小的改變
內容上則差不多
==========================================================
開啟CubeMX
第一個看到的是歡迎畫面
正中間的深藍色方框是開啟新專案的選項
左邊則是開啟就專案的選項
右邊則是更新與設定的選項
接下來會先示範一個建立新專案的方法
這是初學者入門時最需要的部分
以往建立新專案的方法
要先到官方下載在編譯環境中適用的MCU韌體封包 (驅動程式碼、固件庫)
然後將整組設定引入編譯環境中
再自己一個一個將需要的功能
從移入的驅動程式碼中找出來設定
只要漏掉一個細節就會導致程式完全不動
而且還找不到病因,欲哭無淚
入門最怕遇到冗長難懂的文字設定流程
特別是因為理解偏差 (語文能力不好) 而產生的誤設定
CubeMX直觀的圖形操作可以省下不少麻煩
往下做你就會發現他的魅力
==========================================================
首先在歡迎畫面的正中間找到 Start My Project from MCU
點選其下方的 ACCESS TO MCU SELECTOR (紅色方框)
進入MCU選單中
在選單中輸入 STM32F205RB 這個 MCU 編號
右下方的畫面會出現與此編號相關的所有MCU選項
如果只輸入 STM32F2 則會出現整個 F2 系列的 MCU
這個選項裡會列出MCU的參考價格、對應的官方開發板、包裝、......
可以初步先確認選用的MCU是不是自己想要的
若點選需要的MCU後 (如STM32F205RB)
右上方則會出現更多與 MCU 相關的訊息
第一個出現的是MCU的基本規格描述 (Features)
和官網上的訊息一致
如果定期更新CubeMX的話
可以隨時看到第一手的MCU資訊
隔壁一欄Block Diagram則是MCU的功能方塊圖
在這個頁面可以快速檢閱 MCU的所有功能
再隔壁一欄Docs & Resources可以看到與該 MCU 相關的所有參考文件
直接點選要看的資料 (如點選RM0033)
就會連結到對應文件的網址直接下載回來
像這樣
連結到對應的文件後就開始下載
下載成功會直接開啟
==========================================================
回到原選單中雙擊 STM32F205RB 這個 MCU 編號
CubeMX會自動進入圖形化MCU設定畫面
出現的畫面是MCU完整腳位的 Pinout
在這裡要先確認一下MCU的包裝有沒有選對
同一個MCU編號可能會有不同的包裝
而不同的包裝可能存在腳位設定上的些許差異
如果發現包裝不對可以在上方的File選單中重新建立New Project
此時可以開始對 MCU的腳位及初始條件做規劃
第一件要做的是點選 System Core進入sys設定燒錄與除錯的方式
設定的方式很簡單也很直觀
就是點選sys
CubeMX就會自動跳出設定視窗
接著在 Debug 中把 Disable 改成 Serisl Wire
這樣就算設定完成了
設定好功能後會在對應的腳位上變成綠色
如果腳位是黃色代表選定的腳位功能還未開啟
要到對應的功能中把需要的設定補上
若是覺得設定視窗很佔畫面
可以把設定視窗收起來
方便檢視MCU腳位並設定
在設定視窗的右上角有兩個三角形的收放功能
點選紅色框框中的三角形就可以收起設定視窗
像這樣
已經設定好的腳位就會以綠色呈現
此時可以繼續對其他功能進行設定
==========================================================
緊接著要開始設定系統的時脈 RCC
由於我的應用是要使用外部石英晶體當成振盪源
所以要在High Speed Clock (HSC) 中選擇 Cyctal / Ceramic Resistor
選擇好之後對應的振盪腳位也會變成綠色
不過接下來要做的並不是繼續在設定視窗中點選功能
而是移到隔壁欄位 Clock Configuration 中去設定系統時脈
在這裡可以直接看到整個MCU所有跟時脈設定有關的方塊圖
要改變的設定直接在欄位中點選輸入就好
輸入的順序是由左而右,由上至下
由於剛剛已經將HSC的外部振盪腳位設定好了
所以在 Clock Configuration 中外部振盪器是以藍色反白呈現
這裡可以輸入實際應用的石英晶體時脈 (如25, 16, 12, 8......)
預設為25MHz
接下來由左到右我依序修改了一些參數來滿足板子的時脈需求
如果單純使用外部振盪器來當系統時脈
那麼設定到頂天也就25MHZ
要跑上120MHz的系統時脈
得靠內部PLLCLK將HSC倍頻上去
所以我將PLLCLK的振盪源指定為HSC
經過除頻(/25) 倍頻(x240) 除頻 (/2) 的設定後
進入系統的振盪時脈變成120MHz
然而周邊匯流排的時脈跟不上系統的時脈 (APB1:30MHz / APB2: 60MHz)
所以分配給匯流排的時脈還要經過(/4) (/2)的除頻過程
點選好就設定完成了
==========================================================
系統時脈設定好
加個周邊功能來試試
一般來說都會加GPIO或"Hello World"的測試 (UART功能)
這裡以UART3的設定作為範例
我所使用的板子
規劃了PC10與PC11當作UART3的功能腳
因此直接在MCU右上方的PC10與PC11點一下
會出現功能選單
選擇USART3_RX與USART3_TX後
MCU的腳位會變成黃色
為什麼是黃色?
前面的文章有提到是功能未啟用
所以到左邊的 Connectivity 選單中找到 USART3 點一下
接著在 Mode 中 把 Disable 改成 Asynchronous
這樣就把UART3的功能打開並對應到PC10與PC11的腳位上
另外一種方法是先在功能選單中把USART3的功能模式設定好
MCU會跳出預設對應的 IO 腳
以本專案為例
選擇USART3之後會出現PB10與PB11兩隻腳
之後再到MCU的PC10與PC11點選USART3_RX / USART3_TX
一樣可以把 IO 正確定義到需要的腳位上
==========================================================
到此為止
我們把MCU要運作的最基本設定都設好了
要開始產生程式碼的專案檔了
將畫面切換到 Project Manager 頁面上
這裡就是要產生程式碼專案前的設定
左邊可以看到三個選單
第一個選單是Project
第二個選單是Code Generator
第三個選單是Advanced Settings
在Project選單中
我們要先給專案一個名字
這裡設為Hello
專案資料夾要擺放的路徑設在桌面上 (可利用Browse鍵改變路徑)
路徑產生後會將專案名稱當作資料夾名稱放在桌面 (指定的路徑) 上
最重要的
就是不要漏掉你所使用的編譯環境設定 (設為 MDK-ARM V5)
切換到下一個 Code Generator 選單中
把紅色方框中的選項勾選
這個功能會把所有MCU的周邊功能獨立成一個成對的.c與.h檔
將來較容易修正程式且方便閱讀
建議要勾選
不然產生的周邊程式碼會全部放在主程式(main.c)中
程式看起來會很累
而 Advanced Settings 選單中會提示你現在周邊功能開啟的狀況
你可以根據需求做一下調整
這裡因為不做調整就直接跳過
做好上面所有的設定後就可以直接將右上角的 GENERATE CODE 鍵點一下
接下來會等待一小段時間
如果您所開啟的功能比較多
產生程式碼的時間也會比較久
專案建立好之後會跳出一個對話視窗
您可以點選開啟資料夾或開啟專案
若您選擇開啟資料夾
就會看到熟悉的MDK5程式碼結構
裡面多了一個以前沒見過的東西 Hello.ioc
這個檔案是CubeMX專用的IO設定檔
你剛剛所有的設定都儲存在這個檔案裡
只要點選Hello.ioc就可以將剛剛的設定呼叫出來
重點是
你可以隨時任意更改這裡的功能設定
並且重新產生新的程式碼
只要在剛剛的Code Generator中有設定Keep User Code when re-generating (預設選項)
所有自己寫好的程式碼都不會被修改
只會更動與功能設定有關的程式碼
==========================================================
CubeMX可以快速配置好一片新板子所需要的所有功能
如果你對板子的功能很熟悉
那麼使用CubeMX便能加速你開發板子的速度
因為CubeMX再好用
也要自己先了解MCU的功能及用法
CubeMX只是充當索引的角色
此外
建立好專案不代表程式已經可以動作了
要say Hello還是得靠自己key程式
下一篇文章要延續這個專案
將MDK5的程式碼結構介紹一下
敬請期待
目前官方最新版本為5.3.0
如果用過以前4.x的版本
會發現新版本的畫面變得很華麗
畫面分頁的方式讓閱讀更直觀也更簡潔
但習慣了舊畫面的使用者可能需要一點時間適應
因為版面的編排位置有不小的改變
內容上則差不多
==========================================================
開啟CubeMX
第一個看到的是歡迎畫面
正中間的深藍色方框是開啟新專案的選項
左邊則是開啟就專案的選項
右邊則是更新與設定的選項
接下來會先示範一個建立新專案的方法
這是初學者入門時最需要的部分
以往建立新專案的方法
要先到官方下載在編譯環境中適用的MCU韌體封包 (驅動程式碼、固件庫)
然後將整組設定引入編譯環境中
再自己一個一個將需要的功能
從移入的驅動程式碼中找出來設定
只要漏掉一個細節就會導致程式完全不動
而且還找不到病因,欲哭無淚
入門最怕遇到冗長難懂的文字設定流程
特別是因為理解偏差 (語文能力不好) 而產生的誤設定
CubeMX直觀的圖形操作可以省下不少麻煩
往下做你就會發現他的魅力
==========================================================
首先在歡迎畫面的正中間找到 Start My Project from MCU
點選其下方的 ACCESS TO MCU SELECTOR (紅色方框)
進入MCU選單中
在選單中輸入 STM32F205RB 這個 MCU 編號
右下方的畫面會出現與此編號相關的所有MCU選項
如果只輸入 STM32F2 則會出現整個 F2 系列的 MCU
這個選項裡會列出MCU的參考價格、對應的官方開發板、包裝、......
可以初步先確認選用的MCU是不是自己想要的
若點選需要的MCU後 (如STM32F205RB)
右上方則會出現更多與 MCU 相關的訊息
第一個出現的是MCU的基本規格描述 (Features)
和官網上的訊息一致
如果定期更新CubeMX的話
可以隨時看到第一手的MCU資訊
隔壁一欄Block Diagram則是MCU的功能方塊圖
在這個頁面可以快速檢閱 MCU的所有功能
再隔壁一欄Docs & Resources可以看到與該 MCU 相關的所有參考文件
直接點選要看的資料 (如點選RM0033)
就會連結到對應文件的網址直接下載回來
像這樣
連結到對應的文件後就開始下載
下載成功會直接開啟
==========================================================
回到原選單中雙擊 STM32F205RB 這個 MCU 編號
CubeMX會自動進入圖形化MCU設定畫面
出現的畫面是MCU完整腳位的 Pinout
在這裡要先確認一下MCU的包裝有沒有選對
同一個MCU編號可能會有不同的包裝
而不同的包裝可能存在腳位設定上的些許差異
如果發現包裝不對可以在上方的File選單中重新建立New Project
此時可以開始對 MCU的腳位及初始條件做規劃
第一件要做的是點選 System Core進入sys設定燒錄與除錯的方式
設定的方式很簡單也很直觀
就是點選sys
CubeMX就會自動跳出設定視窗
接著在 Debug 中把 Disable 改成 Serisl Wire
這樣就算設定完成了
設定好功能後會在對應的腳位上變成綠色
如果腳位是黃色代表選定的腳位功能還未開啟
要到對應的功能中把需要的設定補上
若是覺得設定視窗很佔畫面
可以把設定視窗收起來
方便檢視MCU腳位並設定
在設定視窗的右上角有兩個三角形的收放功能
點選紅色框框中的三角形就可以收起設定視窗
像這樣
已經設定好的腳位就會以綠色呈現
此時可以繼續對其他功能進行設定
==========================================================
緊接著要開始設定系統的時脈 RCC
由於我的應用是要使用外部石英晶體當成振盪源
所以要在High Speed Clock (HSC) 中選擇 Cyctal / Ceramic Resistor
選擇好之後對應的振盪腳位也會變成綠色
不過接下來要做的並不是繼續在設定視窗中點選功能
而是移到隔壁欄位 Clock Configuration 中去設定系統時脈
在這裡可以直接看到整個MCU所有跟時脈設定有關的方塊圖
要改變的設定直接在欄位中點選輸入就好
輸入的順序是由左而右,由上至下
由於剛剛已經將HSC的外部振盪腳位設定好了
所以在 Clock Configuration 中外部振盪器是以藍色反白呈現
這裡可以輸入實際應用的石英晶體時脈 (如25, 16, 12, 8......)
預設為25MHz
接下來由左到右我依序修改了一些參數來滿足板子的時脈需求
如果單純使用外部振盪器來當系統時脈
那麼設定到頂天也就25MHZ
要跑上120MHz的系統時脈
得靠內部PLLCLK將HSC倍頻上去
所以我將PLLCLK的振盪源指定為HSC
經過除頻(/25) 倍頻(x240) 除頻 (/2) 的設定後
進入系統的振盪時脈變成120MHz
然而周邊匯流排的時脈跟不上系統的時脈 (APB1:30MHz / APB2: 60MHz)
所以分配給匯流排的時脈還要經過(/4) (/2)的除頻過程
點選好就設定完成了
==========================================================
系統時脈設定好
加個周邊功能來試試
一般來說都會加GPIO或"Hello World"的測試 (UART功能)
這裡以UART3的設定作為範例
我所使用的板子
規劃了PC10與PC11當作UART3的功能腳
因此直接在MCU右上方的PC10與PC11點一下
會出現功能選單
選擇USART3_RX與USART3_TX後
MCU的腳位會變成黃色
為什麼是黃色?
前面的文章有提到是功能未啟用
所以到左邊的 Connectivity 選單中找到 USART3 點一下
接著在 Mode 中 把 Disable 改成 Asynchronous
這樣就把UART3的功能打開並對應到PC10與PC11的腳位上
另外一種方法是先在功能選單中把USART3的功能模式設定好
MCU會跳出預設對應的 IO 腳
以本專案為例
選擇USART3之後會出現PB10與PB11兩隻腳
之後再到MCU的PC10與PC11點選USART3_RX / USART3_TX
一樣可以把 IO 正確定義到需要的腳位上
==========================================================
到此為止
我們把MCU要運作的最基本設定都設好了
要開始產生程式碼的專案檔了
將畫面切換到 Project Manager 頁面上
這裡就是要產生程式碼專案前的設定
左邊可以看到三個選單
第一個選單是Project
第二個選單是Code Generator
第三個選單是Advanced Settings
在Project選單中
我們要先給專案一個名字
這裡設為Hello
專案資料夾要擺放的路徑設在桌面上 (可利用Browse鍵改變路徑)
路徑產生後會將專案名稱當作資料夾名稱放在桌面 (指定的路徑) 上
最重要的
就是不要漏掉你所使用的編譯環境設定 (設為 MDK-ARM V5)
切換到下一個 Code Generator 選單中
把紅色方框中的選項勾選
這個功能會把所有MCU的周邊功能獨立成一個成對的.c與.h檔
將來較容易修正程式且方便閱讀
建議要勾選
不然產生的周邊程式碼會全部放在主程式(main.c)中
程式看起來會很累
而 Advanced Settings 選單中會提示你現在周邊功能開啟的狀況
你可以根據需求做一下調整
這裡因為不做調整就直接跳過
做好上面所有的設定後就可以直接將右上角的 GENERATE CODE 鍵點一下
接下來會等待一小段時間
如果您所開啟的功能比較多
產生程式碼的時間也會比較久
專案建立好之後會跳出一個對話視窗
您可以點選開啟資料夾或開啟專案
若您選擇開啟資料夾
就會看到熟悉的MDK5程式碼結構
裡面多了一個以前沒見過的東西 Hello.ioc
這個檔案是CubeMX專用的IO設定檔
你剛剛所有的設定都儲存在這個檔案裡
只要點選Hello.ioc就可以將剛剛的設定呼叫出來
重點是
你可以隨時任意更改這裡的功能設定
並且重新產生新的程式碼
只要在剛剛的Code Generator中有設定Keep User Code when re-generating (預設選項)
所有自己寫好的程式碼都不會被修改
只會更動與功能設定有關的程式碼
==========================================================
CubeMX可以快速配置好一片新板子所需要的所有功能
如果你對板子的功能很熟悉
那麼使用CubeMX便能加速你開發板子的速度
因為CubeMX再好用
也要自己先了解MCU的功能及用法
CubeMX只是充當索引的角色
此外
建立好專案不代表程式已經可以動作了
要say Hello還是得靠自己key程式
下一篇文章要延續這個專案
將MDK5的程式碼結構介紹一下
敬請期待
沒有留言:
張貼留言