【正點(diǎn)原子】手把手教你學(xué)STM32 HAL庫開發(fā)全集【真人出鏡】STM32入門教

p63 中斷的使用和HAL庫中斷回調(diào)處理機(jī)制
EXTI配置步驟
- 使能GPIO時鐘
- 設(shè)置GPIO輸入模式
- 使能AFIO/SYSCFG時鐘
- 設(shè)置EXTI和IO對應(yīng)關(guān)系
- 設(shè)置EXTI屏蔽,上/下沿
- 設(shè)置NVIC
- 設(shè)置中斷服務(wù)函數(shù)
HAL庫設(shè)置步驟(GPIO外部中斷)
- 使能GPIO時鐘
- GPIO/AFIO(SYSCFG)/EXTI(使用HAL_GPIO_Init一步到位)
- 設(shè)置中斷分組
- 設(shè)置中斷優(yōu)先級
- 使能中斷
- 設(shè)置中斷服務(wù)函數(shù)
STM32僅有7個中斷服務(wù)函數(shù):
- EXTI0-4共5個
- EXTI5-9共1個
- EXTI10-15共1個
通用外設(shè)驅(qū)動模型(四步法,1、4步)
HAL庫中斷回調(diào)處理機(jī)制
- 中斷服務(wù)函數(shù)(硬件中斷服務(wù)函數(shù))
- HAL庫中斷處理共用函數(shù)(異常處理,清中斷標(biāo)志和,調(diào)用回調(diào)函數(shù))
- HAL庫數(shù)據(jù)處理回調(diào)函數(shù)(各種回調(diào)函數(shù),可有多個)
p88 定時器概述
課堂內(nèi)容
- 定時器概述
- 基本定時器
- 通用定時器
- 高級定時器
- 課堂總結(jié)(掌握)
本節(jié)內(nèi)容
- 軟件定時原理
- 定時器定時原理
- STM32定時器分類
- STM32定時器特性表
- STM32基本、通用、高級定時器功能整體的區(qū)別
1.1 軟件定時原理
- 使用純軟件(CPU死等)的方式實現(xiàn)定時(延時)功能
- 延時實現(xiàn)1:執(zhí)行for語句,執(zhí)行__nop();每次執(zhí)行延遲時間與芯片主頻有關(guān)。
- 延時實現(xiàn)2:延遲時間乘以延時因子,然后循環(huán)遞減(不精準(zhǔn)的)
缺點(diǎn)
- 延時不精準(zhǔn)
- CPU死等
1.2 定時器定時原理
- 使用精準(zhǔn)的時基,通過硬件的方式,實現(xiàn)定時功能
- 定時器核心就是計數(shù)器
- CLK經(jīng)過PSC(預(yù)分頻器),獲得TIM CLK(計時器真正工作的時鐘);計數(shù)器根據(jù)時鐘計數(shù),直到溢出,產(chǎn)生事件;計數(shù)器可以由APP自動重裝載值
1.3 STM32定時器分類
定時器分類
- 常規(guī)定時器:基本、通用、高級
- 專用定時器:獨(dú)立看門狗、窗口看門狗、實時時鐘、低功耗定時器
- 內(nèi)核定時器:SysTick定時器
1.4 STM32定時器特性表
特性表(F1)
- 基本定時器:TIM6、7;計數(shù)模式遞增;捕獲/比較通道0;無互補(bǔ)輸出
- 通用定時器:TIM2-5;計數(shù)模式遞增、遞減、中央對齊;捕獲/比較通道4;無互補(bǔ)輸出
- 高級定時器:TIM1、8;計數(shù)模式遞增、遞減、中央對齊;捕獲/比較通道4;有互補(bǔ)輸出
共同特性:計數(shù)器位數(shù)16;計數(shù)模式遞增;預(yù)分頻系數(shù)1~65535;可以產(chǎn)生DMA請求;
H7特性表略
表格在開發(fā)指南中可以找到
1.5 STM32基本、通用、高級定時器功能整體的區(qū)別
- 基本定時器:沒有輸入輸出通道,常用作時基,即定時功能
- 通用定時器:具有多路獨(dú)立通道,可用于輸入捕獲/輸出比較,也可用作時基
- 高級定時器:具備通用定時器所有功能,具備帶死區(qū)控制的互補(bǔ)信號輸出、剎車輸入等功能(可用于電機(jī)控制、數(shù)字電源設(shè)計等)
p89 基本定時器簡介 框圖 計數(shù)模式及溢出條件
本節(jié)內(nèi)容
- 基本定時器簡介
- 基本定時器框圖
- 定時器計數(shù)模式及溢出條件
- 定時器中斷實驗相關(guān)寄存器
- 定時器溢出時間計算方法
- 定時器中斷實驗配置步驟
- 編程實戰(zhàn):定時器中斷實驗
2.1 基本定時器簡介
- 基本定時器:TIM6/TIM7
- 主要特性:16位遞增計數(shù)器(計數(shù)值0~65535);16位預(yù)分頻器(分頻系數(shù)1~65536);可用于觸發(fā)DAC;在更新事件(計數(shù)器溢出)時,可產(chǎn)生中斷/DMA請求
2.2 基本定時器框圖
- 時鐘源:來自RCC的TIMxCLK->內(nèi)部時鐘(CK_INT)
- 控制器
- 計數(shù)器(時基單元):CK_PSK->PSC(預(yù)分頻器)--(CK_CNT)--> CNT(計數(shù)器);自動重載寄存器--> CNT計數(shù)器
- PSC和ARR有影子寄存器
- 影子寄存器實際上起作用,不可直接訪問,實際上起到緩沖的作用
- 寫入寄存器的數(shù)值需要轉(zhuǎn)移到影子寄存器才能起作用,依靠一個事件
事件
- 溢出產(chǎn)生更新事件(U事件)、中斷和DMA輸出事件、UG位產(chǎn)生軟件更新事件
- 更新事件可使預(yù)裝載寄存器的值加載到對應(yīng)的影子寄存器
- ARPE位決定ARR是否具有緩沖
定時器時鐘源的來源
標(biāo)簽: