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