學(xué)習(xí)前端的網(wǎng)站學(xué)推廣網(wǎng)絡(luò)營(yíng)銷去哪里
STM32CubeMX 下載和安裝 詳細(xì)教程
【HAL庫(kù)】STM32CubeMX開(kāi)發(fā)----STM32F407----目錄
前言
本次實(shí)驗(yàn)以 STM32F407VET6 芯片為MCU,使用 25MHz 外部時(shí)鐘源。
實(shí)現(xiàn)定時(shí)器TIM3中斷,每1s進(jìn)一次中斷。
定時(shí)器計(jì)算公式如下:
arr 是自動(dòng)裝載值,psc 是分頻系數(shù),Tclk 定時(shí)器的時(shí)鐘。
一、使用STM32CubeMX----新建工程
步驟1:打開(kāi) STM32CubeMX 軟件
具體 STM32CubeMX 界面如下:
步驟2:選擇 從MCU開(kāi)始我的項(xiàng)目
步驟3:選擇MCU芯片
我們本次實(shí)驗(yàn)選擇 STM32F407VET6 芯片做 MCU。
進(jìn)入工程編輯,具體界面如下:
步驟4:設(shè)置燒寫方式為 SWD模式
這一步必須選擇一種燒寫方式,否則燒寫一次程序后,芯片中就沒(méi)法再次燒寫程序了。需要硬件重啟才可以重新燒寫程序。
STM32燒寫程序連接方式詳解
步驟5:設(shè)置時(shí)鐘源
設(shè)置外部晶振為芯片系統(tǒng)時(shí)鐘源。
步驟6:定時(shí)器設(shè)置
定時(shí)器參數(shù)設(shè)置
Prtscaler (定時(shí)器分頻系數(shù)) : 8399
Counter Mode(計(jì)數(shù)模式) : Up(向上計(jì)數(shù)模式)
Counter Period(自動(dòng)重裝載值) : 9999
CKD(時(shí)鐘分頻因子) : No Division 不分頻
auto-reload-preload(自動(dòng)重裝載) : Enable 使能
其他的默認(rèn)不變。
使能定時(shí)器中斷
步驟7:設(shè)置時(shí)鐘
STM32F407 時(shí)鐘最大頻率為 168M,我的開(kāi)發(fā)板是 25M 外部時(shí)鐘源,具體時(shí)鐘配置如下:
本次實(shí)驗(yàn)以 STM32F407VET6 芯片為MCU,使用 25MHz 外部時(shí)鐘源。
APB1是84MHz,TIM3定時(shí)器使用的時(shí)鐘就是APB1。
步驟8:項(xiàng)目編輯
步驟9:代碼生成編輯
步驟10:點(diǎn)擊 GENERATE CODE 生成代碼
新建的工程,已經(jīng)生成,接下來(lái)就是對(duì)工程代碼的編輯。
二、使用keil5----編輯程序
想要使用keil5打開(kāi)工程,需要電腦先安裝 keil5編譯環(huán)境,具體操作流程。
可以點(diǎn)擊下方文章鏈接:Keil5編譯環(huán)境搭建流程----STM32和GD32
步驟1:使用keil5打開(kāi)工程
點(diǎn)擊工程文件中的MDK-ARM 文件
打開(kāi)keil5工程
步驟2:用戶代碼 編輯位置
用戶代碼 要寫在 USER xxxx BEGIN xxx 和 USER xxxx END xxx 之間。
這樣下次使用 STM32CubeMX 重新生成代碼后,自己寫的代碼不會(huì)被刪除。
步驟3:使用到的HAL庫(kù)函數(shù)
//啟動(dòng)定時(shí)器中斷
HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim);
//定時(shí)器中斷回調(diào)函數(shù)
__weak void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim);
步驟4:開(kāi)啟定時(shí)器中斷
步驟5:定時(shí)器中斷服務(wù)函數(shù)中編輯
步驟6:編譯程序,然后燒寫程序到開(kāi)發(fā)板
具體燒寫操作步驟,可以查看以下文章,有詳細(xì)的燒寫說(shuō)明。
文章鏈接:
燒寫程序(STM32+GD32):ST-link V2調(diào)試下載器實(shí)物和連接方式
燒寫程序(STM32+GD32):ST-link驅(qū)動(dòng)下載和安裝
燒寫程序(STM32+GD32):Keil5使用ST-link下載程序
資源鏈接:ST-link驅(qū)動(dòng)鏈接----點(diǎn)擊下載