一、STM32CubeMX 簡(jiǎn)介
1、STM32CubeMX 是 ST 意法半導(dǎo)體近幾年來(lái)大力推薦的STM32 芯片圖形化配置工具,目的就是為了方便開發(fā)者, 允許用戶使用圖形化向?qū)蒀 初始化代碼,可以大大減輕開發(fā)工作,時(shí)間和費(fèi)用,提高開發(fā)效率。STM32CubeMX幾乎覆蓋了STM32 全系列芯片。
在CubeMX上,通過(guò)傻瓜化的操作便能實(shí)現(xiàn)相關(guān)配置,最終能夠生成C語(yǔ)言代碼,支持多種工具鏈,比如MDK、IAR For ARM、TrueStudio等 省去了我們配置各種外設(shè)的時(shí)間,大大的節(jié)省了時(shí)間。
安裝CubeMx一共需要三個(gè)
JRE(Java Runtime Environment) Java運(yùn)行環(huán)境 運(yùn)行JAVA程序所必須的環(huán)境的集合
STM32CubeMX
HAL庫(kù)STM32 HAL固件庫(kù) ST官方推出的另一套庫(kù)
1安裝JRE
由于 STM32CubeMX 軟件是基于 JAVA 環(huán)境運(yùn)行的,所以需要安裝 JRE (Java Runtime Environment)才能使用,
1點(diǎn)擊安裝
2 修改路徑 點(diǎn)下一步
3 等待安裝完成,關(guān)閉界面
2安裝STM32CubeMX
官網(wǎng)下載:
在官網(wǎng)下載需要注冊(cè)下ST官網(wǎng)賬號(hào),目前最新為5.3.0版本,不想在官網(wǎng)下可以在百度云盤下載,
1打開安裝包
2同意協(xié)議,下一步
3 勾選第一個(gè)即可,第二個(gè)選項(xiàng)是是否同意ST公司收集你的個(gè)人使用信息等。
4 點(diǎn)YES 這句話是安裝本軟件可能會(huì)與文件夾之前文件沖突,導(dǎo)致文件夾之前文件丟失 是否繼續(xù)
點(diǎn)繼續(xù)即可
5 直接點(diǎn)NEXT,其他不用設(shè)置 之后開始安裝
6 安裝完成,點(diǎn)Done退出
3安裝HAL庫(kù)
什么是HAL固件庫(kù)?
STM32 HAL固件庫(kù)是Hardware Abstraction Layer的縮寫,中文名稱是:硬件抽象層。HAL庫(kù)是ST公司為STM32的MCU最新推出的抽象層嵌入式軟件,為更方便的實(shí)現(xiàn)跨STM32產(chǎn)品的最大可移植性。HAL庫(kù)的推出,可以說(shuō)ST也慢慢的拋棄了原來(lái)的標(biāo)準(zhǔn)固件庫(kù),這也使得很多老用戶不滿。但是HAL庫(kù)推出的同時(shí),也加入了很多第三方的中間件,有RTOS,USB,TCP / IP和圖形等等。
和標(biāo)準(zhǔn)庫(kù)對(duì)比起來(lái),STM32的HAL庫(kù)更加的抽象,ST最終的目的是要實(shí)現(xiàn)在STM32系列MCU之間無(wú)縫移植,甚至在其他MCU也能實(shí)現(xiàn)快速移植。
并且從16年開始,ST公司就逐漸停止了對(duì)標(biāo)準(zhǔn)固件庫(kù)的更新,轉(zhuǎn)而傾向于HAL固件庫(kù)和 Low-layer底層庫(kù)的更新,停止標(biāo)準(zhǔn)庫(kù)更新,也就表示了以后使用STM32CubeMX配置HAL/LL庫(kù)是主流配置環(huán)境;
HAL庫(kù),有在線安裝、離線安裝兩種方式。
在線安裝
打開安裝好的 STM32CubeMX 軟件 點(diǎn)上面的Help -> Manage embedded software packages
會(huì)跳出來(lái)一個(gè)選擇型號(hào)界面 勾選上你要安裝的HAL庫(kù), 點(diǎn)擊“Install Now” 直到安裝成功。 如下圖:
離線安裝
離線安裝需要下載安裝包,這里提供百度云和ST官方下載方式PS:建議在線安裝 速度快,又穩(wěn)定
軟件下載旁邊一欄就是HAL庫(kù)下載 下載對(duì)應(yīng)芯片的安裝包
1直接導(dǎo)入安裝包 Help -> Manage embedded software packages ->From Local 選擇離線包即可
2直接解壓
Help->Updater Settings... 可以選擇HAL庫(kù)安裝包路徑,默認(rèn)在C盤 可以自行修改
解壓到相對(duì)應(yīng)路徑即可
二、配置工程
打開Cube,選擇對(duì)應(yīng)芯片
配置下載線:下載接口SW
配置系統(tǒng)工作時(shí)鐘:168MHZ
配置外部晶振
配置時(shí)鐘樹:
配置IO:
LED4—PB5---通用推挽輸出
LED5—PB4
LED6—PB3
選擇引腳功能:
配置具體引腳功能:
配置keil工程:
生成工程
可直接選擇打開工程也可關(guān)閉后,在文件夾中手動(dòng)打開
閃燈代碼:
三、注意事項(xiàng)
(1)延時(shí)函數(shù):可直接使用系統(tǒng)根據(jù)滴答定時(shí)器生成的HAL_Delay();
(2)中斷的回調(diào)函數(shù):
在CubeMX中配置的中斷會(huì)在“stm32f4xx_it.c”中創(chuàng)建對(duì)應(yīng)的中斷服務(wù)程序,可在生成的函數(shù)預(yù)留位置處直接編程,如下:
也可找到對(duì)應(yīng)的回調(diào)函數(shù),重寫回調(diào)函數(shù)進(jìn)行編程:
重新寫一個(gè)該函數(shù)即可,無(wú)需調(diào)用;
使用外設(shè)中斷時(shí):
CubeMX可以開啟全局中斷,NVIC分配優(yōu)先級(jí);
工程應(yīng)用時(shí):使能具體的中斷操作,執(zhí)行過(guò)中斷任務(wù)后默認(rèn)中斷會(huì)關(guān)掉,需要做的是再次開啟;如:串口接收中斷
(3)代碼編寫區(qū)域,要在規(guī)定的范圍內(nèi),否則重新生成的代碼將會(huì)覆蓋編寫的代碼,如:
/* USER CODE BEGIN 2 */
UASRT1_Init();
printf("初始化完成");
/* USER CODE END 2 */
評(píng)論