標(biāo)題: STM32單片機(jī)STM32CubeMX軟件開發(fā)手冊(cè) [打印本頁(yè)]
作者: xuchaopan 時(shí)間: 2020-10-30 15:24
標(biāo)題: STM32單片機(jī)STM32CubeMX軟件開發(fā)手冊(cè)
本帖最后由 xuchaopan 于 2020-10-30 15:38 編輯
一、 介紹
STM32Fxx系列單片機(jī)在CubeMX軟件的加持下,大大的提高了開發(fā)效率并縮短前期開發(fā)時(shí)間。
CubeMX軟件支持意法半導(dǎo)體的所有32位單片機(jī),它可以幫助開發(fā)人員新建項(xiàng)目、設(shè)置芯片時(shí)鐘、配置IO功能、定時(shí)器、設(shè)置諸如SPI/UART/I2C等等硬件端口,并且可對(duì)所有的基本參數(shù)進(jìn)行配置,并且CubeMX還可以生成FreeRTOS嵌入式系統(tǒng)。
CubeMX支持Keil、IAR等主流程序編譯環(huán)境的工程生產(chǎn),生成的文件可以用編譯軟件直接打開并編譯。
CubeMX包含了STM單片機(jī)的HAL庫(kù),會(huì)根據(jù)開發(fā)人員配置的功能自動(dòng)加載HAL庫(kù)文件。
二、 新建工程
1. 打開軟件,并開始工程及芯片選擇,如下圖
1.png (98.29 KB, 下載次數(shù): 56)
下載附件
2020-10-30 15:34 上傳
點(diǎn)擊第一個(gè)選項(xiàng),從MCU選擇開始。
2. 選擇芯片,如下圖
2.png (66.34 KB, 下載次數(shù): 62)
下載附件
2020-10-30 15:34 上傳
在搜索框中輸入芯片型號(hào)后,在右下側(cè)會(huì)出現(xiàn)該型號(hào)包含的芯片及封裝,選擇自己使用的封裝后雙擊,則會(huì)進(jìn)入下面這個(gè)界面,此時(shí)就可以開始配置芯片功能等參數(shù)了。
3.png (68.03 KB, 下載次數(shù): 49)
下載附件
2020-10-30 15:34 上傳
3. 芯片時(shí)鐘設(shè)置
我們首先對(duì)芯片的時(shí)鐘源進(jìn)行配置,如下圖
4.png (94.25 KB, 下載次數(shù): 65)
下載附件
2020-10-30 15:34 上傳
按照序號(hào)選項(xiàng),在③處選擇晶體振蕩器。然后按照下圖設(shè)置
5.png (79.99 KB, 下載次數(shù): 62)
下載附件
2020-10-30 15:34 上傳
按照序號(hào)順序進(jìn)行操作,在④處設(shè)置想要的系統(tǒng)時(shí)鐘頻率。
4. 工程保存,如下圖
6.png (73.73 KB, 下載次數(shù): 52)
下載附件
2020-10-30 15:34 上傳
按照序號(hào)順序操作,在②處輸入工程名,③處選擇工程保存的路徑,④處選擇要使用的編譯軟件及版本。然后如下圖配置選擇庫(kù)和生產(chǎn)文件屬性。
7.png (58.54 KB, 下載次數(shù): 75)
下載附件
2020-10-30 15:34 上傳
5. 生成工程
如下圖,點(diǎn)擊①后會(huì)彈出②處的進(jìn)度條,這時(shí)等待其完成即可。
8.png (59.12 KB, 下載次數(shù): 55)
下載附件
2020-10-30 15:34 上傳
完成后會(huì)彈出下圖的選項(xiàng),這時(shí)可以選擇直接打開工程。
9.png (67.6 KB, 下載次數(shù): 41)
下載附件
2020-10-30 15:34 上傳
6. 開始編寫程序
10.png (84.93 KB, 下載次數(shù): 50)
下載附件
2020-10-30 15:34 上傳
如圖,這就是CubeMX生產(chǎn)的一個(gè)最基本的工程,main.c在User文件夾下,之后就可以在main函數(shù)下開始編寫程序,在添加程序時(shí),請(qǐng)需注意:如上圖的方框內(nèi)的備注,添加的代碼需要在BEGIN 之后 END之前,這樣在下次CubeMX再生成文件的時(shí)候就不會(huì)被刪除,否則CubeMX會(huì)將你寫的代碼全部刪除,這樣就功虧一簣了。
三、 GPIO的使用
1. 配置一個(gè)輸出IO,這里用PA0作演示,如下圖
11.png (104.24 KB, 下載次數(shù): 49)
下載附件
2020-10-30 15:34 上傳
如圖,按序號(hào)順序選擇①處,我們回到pinout & configuration,在④處用電機(jī)PA0這個(gè)引腳后會(huì)彈出右邊的功能選項(xiàng)表,這里就能看出這個(gè)IO端口支持的功能,這里我們選擇Output(輸出功能)。然后可以對(duì)這個(gè)IO口直接配置。
12.png (108.9 KB, 下載次數(shù): 62)
下載附件
2020-10-30 15:34 上傳
上圖中①處選擇要設(shè)置的IO口,在下面有5個(gè)選項(xiàng),可以對(duì)其進(jìn)行配置,
在⑥處可以數(shù)額如IO的名稱,在生成后的main.h,就能找到這個(gè)名稱的IO口,之后對(duì)其進(jìn)行調(diào)用即可。
2. 程序編寫
13.png (119.27 KB, 下載次數(shù): 46)
下載附件
2020-10-30 15:34 上傳
按上圖順序打開main.h,在④處添加控制宏,之后在main函數(shù)下添加IO控制程序即可,如下圖
14.png (111.09 KB, 下載次數(shù): 41)
下載附件
2020-10-30 15:34 上傳
由①處可見,CubeMX再生成工程后,會(huì)自動(dòng)添加GPIO初始化代碼,不用開發(fā)人員自己再去做初始化,CubeMX會(huì)根據(jù)在軟件上的配置進(jìn)行代碼生成,
在②處添加控制代碼即可。
四、 定時(shí)器的使用
1. 設(shè)置一個(gè)定時(shí)器,定時(shí)時(shí)間為1ms,軟件上配置如下圖:
15.png (66.34 KB, 下載次數(shù): 53)
下載附件
2020-10-30 15:34 上傳
這里是啟用的Tim2作為定時(shí)器源,上圖按照順序進(jìn)行選項(xiàng)設(shè)置,
圖中第④處為設(shè)置定時(shí)器分頻系數(shù),第⑤處設(shè)置的是計(jì)數(shù)器周期,第⑥處啟用自動(dòng)重裝。
2. 然后在后面選項(xiàng)打開定時(shí)器中斷,如下圖:
16.png (54.72 KB, 下載次數(shù): 53)
下載附件
2020-10-30 15:34 上傳
3. 程序編寫,在程序上打開定時(shí),代碼(HAL_TIM_Base_Start(&htim2);)。然后在stm32f1xx_it.c里面找到定時(shí)器2的中斷服務(wù)器程序(TIM2_IRQHandler),在里面添加定時(shí)器中斷標(biāo)志即可。
五、 PWM的使用
1. 舉例配置一個(gè)頻率1kHz的PWM脈沖輸出信號(hào),如下圖:
17.png (65.65 KB, 下載次數(shù): 53)
下載附件
2020-10-30 15:34 上傳
按照上圖順序選擇,第③處為PWM輸出通道選擇,這里選擇后,在芯片IO圖中第④處可以看到就自動(dòng)生成了一個(gè)PWM-CH1端口。然后⑤、⑥處設(shè)置分頻系數(shù)、定時(shí)器值,⑦處設(shè)置裝填的初始值,其占空比就是⑥/⑦的數(shù)值,也就是二分之一。
2. 程序編寫:同樣使用庫(kù)函數(shù)(HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_1);)打開定時(shí)器3的第1路PWM輸出;然后可以通過庫(kù)函數(shù)修改PWM占空比(__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1, 500);)紅字就是PWM輸出占空比的比例值。
六、 SPI的使用
待補(bǔ)充
七、 I2C的使用
待補(bǔ)充
八、 UART的使用
待補(bǔ)充
九、 ADC的使用
待補(bǔ)充
十、 FreeRTOS的使用
待補(bǔ)充
作者: lht5631080 時(shí)間: 2020-11-4 22:52
好文!
| 歡迎光臨 (http://m.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |