溫州電力建設(shè)有限公司網(wǎng)站網(wǎng)站seo排名公司
一、概述
????無論是新手還是大佬,基于STM32單片機(jī)的開發(fā),使用STM32CubeMX都是可以極大提升開發(fā)效率的,并且其界面化的開發(fā),也大大降低了新手對STM32單片機(jī)的開發(fā)門檻。
????本文主要面向初次接觸STM32CubeMX的同學(xué),大佬們可以跳過直接看單獨的外設(shè)篇章。
二、軟件說明
????STM32CubeMX是ST官方出的一款針對ST的MCU/MPU跨平臺的圖形化工具,支持在Linux、MacOS、Window系統(tǒng)下開發(fā),其對接的底層接口是HAL庫,另外習(xí)慣于寄存器開發(fā)的同學(xué)們,也可以使用LL庫。STM32CubeMX除了集成MCU/MPU的硬件抽象層,另外還集成了像RTOS,文件系統(tǒng),USB,網(wǎng)絡(luò),顯示,嵌入式AI等中間件,這樣開發(fā)者就能夠很輕松的完成MCU/MPU的底層驅(qū)動的配置,留出更多精力開發(fā)上層功能邏輯,能夠更進(jìn)一步提高了嵌入式開發(fā)效率。
????演示版本 6.7.0
三、下載鏈接
官網(wǎng)鏈接:https://www.st.com/zh/development-tools/stm32cubemx.html
百度網(wǎng)盤鏈接:https://pan.baidu.com/s/1HsHTmnJPZMZD1reCkMiXew?pwd=eq5j
提取碼:eq5j
四、軟件使用
安裝軟件后雙擊打開軟件,界面比較清晰,主要功能都放主界面上了。
New Project:新建工程,可以根據(jù)芯片型號、開發(fā)板類型、例程建工程。
Manage software installaions:軟件包安裝,"CHECK FOR UPDATES"是用于更新軟件自身,"INSTALL/REMOVE"是用于芯片包的安裝和移除(跟Keil一樣,需要哪個系列的芯片就安裝哪個芯片包)。
About STM32 & External Tools:前者是給ST自己打廣告的,后者就是ST的一個工具生態(tài)鏈,一些相關(guān)工具可以在里面看到,比如ST的IDE工具——STM32CubeIDE。
我們先選擇根據(jù)MCU型號新建一個工程。
-最上方可以切換MCU、開發(fā)板或例程。
-左邊是一個搜索框,可以根據(jù)芯片型號直接搜索,也可以通過芯片資源或芯片信息來找到合適的芯片。
-右下則是具體的芯片型號及一其基本信息,搜索結(jié)果也會在這里體現(xiàn),選中并雙擊芯片型號即確認(rèn)并新建工程。
-右上的框是在選中芯片后,會顯示芯片的一些具體信息。
????新建一個工程,因為我手頭上只有一塊STM32F072RB的開發(fā)板,所以這里選這個芯片。
????新建完工程后,根據(jù)選擇的芯片型號,主界面會顯示對應(yīng)的芯片及其引腳分布。
????每個引腳可以單獨選擇對應(yīng)的功能,哪些端口能配哪些外設(shè),這里面都可以直觀地看出來,不用再去查芯片手冊,省了不少時間。配置好一個功能后,引腳顏色會變綠色。如果選完功能后引腳變黃色(比如配置了定時器的某個通道),這說明功能配置不完全,需要到左邊的外設(shè)窗口進(jìn)行詳細(xì)配置。
左邊窗口對芯片外設(shè)做了一些分類,點擊對應(yīng)的外設(shè),可以在詳細(xì)配置的窗口中進(jìn)行功能配置。
System Core:系統(tǒng)及內(nèi)核相關(guān)的配置,比如系統(tǒng)時鐘、GPIO、中斷、內(nèi)部看門狗等。
Analog:模擬量相關(guān)的外設(shè),比如ADC、DAC、比較器等。
Timers:定時器相關(guān)的外設(shè),比如定時器、RTC等。
Connectivity:通信相關(guān)的外設(shè),比如I2C、SPI、UART等。
Multimedia:多媒體相關(guān)的外設(shè),比如I2S、HDMI等。
Computing:算法相關(guān)的外設(shè),比如硬件CRC等。
Middleware:中間件,比如FreeRTOS、FATFS等。
????切換時鐘配置窗口(Clock Configuration),可以對單片機(jī)的時鐘樹進(jìn)行直觀地配置,這里最方便的就是,修改主頻后,工具會自動算出其他所有外設(shè)的時鐘配置。如果需要對某個外設(shè)時鐘進(jìn)行分頻處理,可以單獨設(shè)置。
????在生成工程代碼之前,先進(jìn)入工程配置界面(Project Manager)對工程進(jìn)行一些配置,比如設(shè)置工程的路徑,以及需要生成什么IDE的工程。另外針對于每一個外設(shè),可以自主選擇使用LL庫或是HAL庫。
????配置完成后,點擊"GENERATE CODE"生成工程及代碼。在生成的工程里添加自己代碼時需要注意一點,生成的代碼里有很多"USER CODE BEGIN"和"USER CODE END"的備注,這些其實是提醒你應(yīng)用代碼要寫在這個區(qū)間內(nèi),這樣工具在重新生成工程時,可以通過識別這些備注進(jìn)行選擇性覆蓋,避免每次改完配置又得重新鍵入應(yīng)用代碼。
????查看工程文件.ioc的目錄下,多了一個完整的工程,打開工程編譯,是可以直接編譯通過的。
????至此,STM32CubeMX這個工具的一些常規(guī)使用功能就介紹完了,想了解具體外設(shè)的配置,請移步獨立的外設(shè)篇章。
五、注意事項
1、配置完外設(shè)后,無論生成HAL庫還是LL庫的代碼,基本都只是給你初始化好外設(shè),但實際使能或者打開中斷,則需要自己來操作。HAL庫一般可能只需要調(diào)一個啟動接口就行(不同外設(shè)有不同操作,不可一概而論),LL庫則需要操作的寄存器會多一些,可以參考HAL的實現(xiàn)來操作和理解。
2、自動生成的代碼也不完全是沒問題的,要留點心眼。就比如之前遇到過,F103的芯片,配置ADC用DMA傳輸時,因為生成的代碼ADC和DMA的初始化順序反了,導(dǎo)致初始化出現(xiàn)異常。
3、添加應(yīng)用代碼時,盡量添加在工程代碼里備注著用戶代碼起始到結(jié)束的區(qū)間內(nèi),這樣后面使用CubeMX修改配置重新生成工程時,不會覆蓋自己添加的應(yīng)用代碼。
六、相關(guān)鏈接
STM32CubeMX-Uart配置
STM32CubeMX-GPIO配置
STM32CubeMX-外部中斷配置
STM32CubeMX-ADC配置
STM32CubeMX-CRC配置
STM32CubeMX-定時器定時配置
STM32CubeMX-定時器輸入捕獲配置
STM32CubeMX-定時器比較輸出配置
STM32CubeMX-I2C配置
STM32CubeMX-SPI配置
STM32CubeMX-NandFlash/FMC總線配置