我們很多時候使用的STM32單片機型號無法與官方硬件支持包自帶的型號一一對應上,而matlab 2021b版至最新版本可以支持 F4xx系列單片機+CubeMX自定義型號配置使用,本篇以“STM32F407VGT6”型號為例如何創建硬件在環工程
溫馨提示 :2021b版本Matlab只支持F4xx以上型號使用CubeMx自定義配置功能,而F4xx以下(F1x、F0x等)則只能使用官方開發板支持包方式開發。
CubeMX版本 :6.2.0
Matlab版本 :2021b
STM32CubeProgrammer版本 :2.6.0
3.0 軟件版本驗證
創建simulink模型前需要先檢查下硬件支持包和相關軟件是否安裝正確,主要是驗證CubeMX和STM32CubeProgrammer版本是否正確,不然后期使用過程中會出現一些意想不到的問題。
在MATLAB主頁面中找到“附加功能->管理附加功能“,點擊打開,如圖3.0.0所示
圖3.0.0 “管理附加功能”位置
在”附加功能管理器中“找到如圖3.0.1所示位置,點擊右側的齒輪設置圖標
圖3.0.1 ”附加功能管理器“頁面
進入到”Hardware Setup“彈窗,保持默認,然后點擊"Next>",如圖3.0.2所示
圖3.0.2 選擇要檢查的選項
進入到”STM32 Tools Information“頁面,如圖3.0.3所示,兩個軟件都沒有安裝,可以根據實際情況進行安裝,但是STM32CubeMX是必須要安裝的,且版本要對應上,而STM32CubeProgrammer如果用不到STLINK方式下載代碼則可以不安裝,然后點擊"Next>"。
圖3.0.3 軟件版本詳情
驗證STM32CubeMX版本是否可用,找到STM32CubeMX的安裝位置,點擊”Validate“,如圖3.0.4所示,如果軟件可用則會出現一個綠色的勾,并顯示驗證成功信息,如圖3.0.5所示
圖3.0.4 選擇STM32CubeMX安裝位置
圖3.0.5 驗證STM32CubeMX版本是否可用
驗證STM32CubeProgrammer是否可用,同樣找到該軟件的安裝位置,然后點擊”Validate“,如圖3.0.6所示,驗證版本可以使用結果顯示如圖3.0.7所示,該設置到此處就可以了,如果讀者朋友想進行后面的設置驗證可以繼續點擊”Next“這里就不過多贅述。
溫馨提示 :Simulink中STM3CubeProgrammer只是作為STLINK的下載工具使用,如果用不到STLINK下載工具可以不安裝該軟件
圖3.0.6 選擇STM32CubeProgrammer安裝位置
圖3.0.7 STM32CubeProgrammer驗證有效
3.1 CubeMX工程創建與配置
首先打開STM32CubeMX軟件,創建新工程,然后搜索“STM32F407VGT6”單片機型號并選中,如圖3.1所示。
圖3.1 搜索尋找需要使用的單片機型號
在“Pinout & Configuration”欄中找到“RCC”將“High Speed Clock(HSE)”設置為“Crystal/Ceramic Resonator”,如圖3.2所示。
圖3.2 設置高速晶振為外部時鐘
找到“SYS”選項將“Debug”設置為“Serial Wire”,將"Timebase Source"設置為“TIM5”(此處設置很重要,需要引起特別注意 ),如圖3.3所示。
圖3.3 設置調試器類型和基礎時鐘源
設置要控制的LED(作者板子上的是PC13)引腳為“GPIO_Output”,如圖3.4所示
圖3.4 設置要控制的LED引腳
設置硬件在環通信串口“USART3”Mode為“Asynchronous”模式,“Prarameter Settings”處參數保持默認,對應的引腳為PB10、PB11, 如圖3.5所示
溫馨提示 :這里只示范USART3作為硬件在環通信接口用,而實際在simulink參數設置中可以選擇其他串口(USART1~USART5),讀者朋友可以根據個人實際情況進行設置。
圖3.5 設置USART3模式為異步通信方式
切換到“DMA Settings”欄,點擊“Add”添加兩個選項并將其分別選擇為“USART3_RX”和“USART3_TX”,如圖3.6所示( 此處設置也是非常重要的,一定不要漏掉,不然可能通信不成功 )
圖3.6 USART3的DMA傳輸設置
時鐘設置沒有太多要求,只要設置正確即可,作者這里使用的是外部8MHz晶振,具體設置如圖3.7所示
圖3.7 使用外部8MHz時鐘樹設置
切換到“Project Manager”,填寫“Project Name”,并選擇文件存放位置“Project Location”,其中“Application Structure”處需要將“Do not generate the main()”勾選上,"Toolchain/IDE"處選擇為“SW4STM32”,“Generate Under Root”前面的勾選去掉,如圖3.8所示
圖3.8 “Project”參數設置
在“Advanced Settings”處將“Driver Selector”全部設置為“LL”,而“Generated Function Calls”的“Visibility(Static)”勾選項全部去掉,如圖3.9所示,設置完后保存文件即可。
注 意 :設置完后不要點擊“GENERATE CODE”,“CTL+S”或點擊保存文件即可
圖3.9 “Advanced Settings”設置
3.2 Simulink模型創建與參數設置
接下來創建simulink模型,切換到3.1節中創建的”F407_Test.ioc“文件保存位置,然后點擊”Simulink“圖標開始創建模型,如圖3.10所示
圖3.10 matlab 2021b主頁面
進入到Simulink起始頁面,點擊創建”空白模型“,如圖3.11所示
圖3.11 Simulink起始頁
將剛剛創建的simulink模型保存到"F407_Test.ioc"所在的文件夾,并命好名字,如圖3.12所示
圖3.12 保存Simulink模型
切換到“建模”欄,點擊“模型設置”按鈕,如圖3.13所示
圖3.13 ”模型設置“按鈕位置
在“配置參數”對話框中找到“硬件實現”并點擊,然后在“Hardware board”中選擇“STM32F4xx Based”,如圖3.14所示
圖3.14 “Hardware board”選擇
找到“Target hardware resources”點擊展開,找到“Build options”點擊,然后點擊“Browse...”找到并選中“F407_Test.ioc”文件,如圖3.15所示。
圖3.15 選擇"xx.ioc"文件
選擇好“F407_Test.ioc”后的效果如圖3.16所示,“Build options”其他部分保持默認即可
圖3.16 “Build options”設置好效果
找到“Connectivity”并點擊,“USART/UART:”欄選擇“USART3”,“Serial port”選擇你電腦上的COM端口,作者這里選擇的是COM47, 這一步很關鍵 ,如圖3.17所示。
溫馨提示: 作者這里為了方便使用的是STLINK 2V1帶串口一體下載器,讀者如果使用單獨的USB轉串口模塊也是可以的,注意連線正確即可(USART3:PB10,PB11)
圖3.17 選擇硬件在環通信串口
找到“STM32Fxx Based Boards”點擊,放置“Digital Port Write”模型,并將端口設置為PC13,如圖3.18,3.19所示
圖3.18 放置“Digital Port Write”模型
圖3.19 設置“Digital Port Wriet”參數
錯誤提示處理 :File or directory C:Program FilesSTMicroelectronicsSTM32CubeSTM32CubeProgrammerbinSTM32_Programmer_CLI.exe not found. 回到3.0節中檢查STM32CubeProgrammer該軟件是否正確安裝
小技巧 :如果串口不能正常通信,可以試著調換TX和RX,或試著換連接線解決下
3.3 模型硬件在環驗證
切換到“HARDWARE”欄,將“Stop Time”改為“inf”,然后點擊“Monitor & Tune”按鈕自動代碼編譯燒錄連接,如圖3.20所示。
注 意: 此處硬件在環只適用于STLINK下載器,其他下載器暫時無法使用此方法
圖3.20 點擊“Monitor & Tune”按鈕
為了讓硬件在環效果更明顯,這里將“Pulse Generator”替換為“Constant”,繼續點擊“Monitor & Tune”按鈕進入硬件在環連接,更改“Constant”的值來控制LED燈的亮滅,如圖3.21所示。
圖3.21 “Constant”值硬件在環控制LED亮滅
3.4 使用CMSIS-DAP下載燒錄硬件在環程序
由于市面上很多開發板或者學習板使用的下載器不是STLINK,這個時候我們需要將硬件在環模型的固件通過其他下載器燒錄到開發板中,下面以CMSIS-DAP下載器為例進行演示。
使用CMSIS-DAP燒錄程序需要用到燒錄上位機,其中有一個開源的OpenOCD需要使用指令方式下載,初學者使用不是很方便,這里就不做過多介紹了,感興趣的讀者可以去使用這個方法燒錄試下。
這里另外介紹一款圖形化界面的燒錄軟件 CooCox CoFlash,如何安裝這里就不詳細介紹了,直接雙擊下一步,下一步即可。
打開軟件的主頁面,選擇單片機型號為“STM32F407VG”,“USB Adapter Setup->Adapter”處設置為“CMSIS-DAP”,其它地方保持默認即可,如圖3.22所示
圖3.22 CooCox CoFlash"Config"設置頁
點擊切換到“Command”欄,在“Program->Data File”處選擇Simulink生成的“F407_test.bin”文件
圖3.23 選擇要下載的.bin文件
點擊“Program”按鈕燒錄程序,如圖3.24所示
圖3.24 點擊下載程序
程序燒錄完后,點擊“Monitor & Tune->Connect”按鈕進行硬件在環通信連接,如圖3.25所示
溫馨提示 :此處要注意串口設置,如果讀者使用其它串口一定要將其設置為你所在的COMx端口,否則無法進行正常硬件在環通信,參考圖3.26設置方式。
圖3.25 點擊硬件在環連接
圖3.26 硬件在環串口設置
正確連接通信后,可以看到在“HARDWARE”欄處有個綠色的“Start”按鈕,點擊該按鈕,如圖3.27所示。
圖3.27 硬件在環啟動按鈕
然后跟3.3節中一樣的操作方式,改變“Constant”值來控制LED亮滅,如圖3.28所示。
圖3.28 硬件在環控制LED亮滅
-
單片機
+關注
關注
6035文章
44554瀏覽量
634650 -
matlab
+關注
關注
185文章
2974瀏覽量
230385 -
STM32
+關注
關注
2270文章
10895瀏覽量
355740 -
硬件
+關注
關注
11文章
3312瀏覽量
66200 -
開發板
+關注
關注
25文章
5032瀏覽量
97373
發布評論請先 登錄
相關推薦
評論