今天講解STM32F103定時器定時-中斷功能,在昨天定時器延時的軟件工程上添加TIM3定時的功能,你們也可以試著將昨天的工程添加修改得到。
今天的軟件工程下載地址(360云盤):
https://yunpan.cn/cPnJ9KYcXbPsP 訪問密碼 acd8
工程現(xiàn)象:間隔(定時器定時)500ms LED變化一次, 并且串口打印
STM32F103ZE有8個定時器(TIM1 – TIM8), 改工程以TIM3定時為例。
STM32F10x的資料可以在我360云盤下載:
https://yunpan.cn/crBUdUGdYKam2 訪問密碼 ca90
關(guān)于TIM延時,我把重要的幾點(diǎn)在下面分別講述,工程中沒有在這里講述的都是之前就有的,重點(diǎn)講述的是主題相關(guān)的內(nèi)容。若不明白,請關(guān)注微信公眾號“EmbeddDeveloper”查閱或留言。
現(xiàn)將重點(diǎn)講述關(guān)于TIM定時的幾點(diǎn)內(nèi)容。
一、定時器時鐘
這里的“時鐘配置”函數(shù)在bsp.c文件下面;
使能時鐘:RCC_APB1Periph_TIM3。
二、定時器配置
函數(shù)在timer.c文件下面;
詳見每一句后面都有注釋。
三、定時函數(shù)
函數(shù)在timer.c文件下面;
主要是定時ON 和OFF函數(shù),至于為什么是定時ms,這里請參考昨天的講解。
大致意思:TIM每秒計數(shù)1M次(系統(tǒng)時鐘72M, 72分頻),計數(shù)滿1000次一個周期,也就是1usX 1000 = 1ms
見timer.h里面的宏定義:TIM3_COUNTER_CLOCK、TIM3_PRESCALER_VALUE、TIM3_PERIOD_TIMING
由這幾個宏定義決定延時時間。
四、NVIC配置
函數(shù)在bsp.c文件下面;
今天的軟件工程使用了中斷,因此添加NVIC配置.
五、TIM3中斷函數(shù)
函數(shù)在stm32f10x_it.c文件下面;
主要是處理TIM3定時器中斷。
六、主函數(shù)應(yīng)用
函數(shù)在main.c文件下面;
(定時器)定時500ms跳變LED、打印(發(fā)送)字符串。
上面“gTIMTiming_Nms_FlagOver”標(biāo)志在第五點(diǎn)。
-
STM32
+關(guān)注
關(guān)注
2290文章
11017瀏覽量
362510 -
Tim
+關(guān)注
關(guān)注
0文章
84瀏覽量
18246 -
STM32F103
+關(guān)注
關(guān)注
33文章
482瀏覽量
65102
發(fā)布評論請先 登錄
一天一個嵌入式面試知識(1:中斷處理機(jī)制詳解)
TIM2輸入捕獲,DMA開啟中斷傳輸輸入捕獲數(shù)據(jù),程序跑的過程中,DMA一直中斷,TIM6只觸發(fā)一次中斷,怎么解決?
STM32G474HRTIM使用HRTIM配置了主定時器中斷,為啥調(diào)試的跳轉(zhuǎn)到硬件中斷,進(jìn)不去定時器中斷,為什么?
STM32CUBUMX定時器1中斷回調(diào)函數(shù)就是進(jìn)不去怎么解決?
stm32同一個定時器不同的通道,可以不同時的輸出pwm波形嗎?
為什么Tim2自動裝載定時的首次中斷時間總是設(shè)定時間的2倍?
stm32 GPIO中斷配置教程
使用STM32F1輸入捕獲功能時,TIM6和TIM7無法實現(xiàn)輸入捕獲是哪里的問題?
STM32CUBEMX(8)--USART通過定時器中斷方式接收不定長數(shù)據(jù)
STM32CUBEMX(5)--自定義紅外NEC解碼,定時器TIM捕獲方式
stm32怎樣觸發(fā)軟件中斷
MM32SPIN系統(tǒng)單片機(jī)高級定時器輸入捕獲沒辦法進(jìn)入TIM_CC_IRQH中斷的原因?
求助,關(guān)于STM32G473 TIM8 DMA burst模式問題求解
STM32G4系列芯片定時器的延時輸出問題

評論