介紹STM32F407基本定時(shí)器的配置方法,分別介紹輪詢方式、中斷方式使用定時(shí)器完成定時(shí)。
【1】定時(shí)器介紹
定時(shí)器相關(guān)的章節(jié)在STM32F4xx參考手冊(cè)第14、15、16、17章節(jié)。
【2】基本定時(shí)器配置示例
增加一個(gè)Timer.c文件,代碼如下
#include 'timer.h'
/*
函數(shù)功能:基本定時(shí)器7初始化配置
函數(shù)形參:
psc :預(yù)分頻系數(shù)
arr :重載值
說(shuō)明:定時(shí)器的視頻頻率為84MHZ ,是APB1時(shí)鐘頻率的2倍
*/
void Time7_InitConfig(u16 psc,u16 arr)
{
/*1. 開(kāi)時(shí)鐘*/
RCC- >APB1ENR|=1< < 5; //開(kāi)啟定時(shí)器7的時(shí)鐘
RCC- >APB1RSTR|=1< < 5; //開(kāi)啟復(fù)位時(shí)鐘
RCC- >APB1RSTR&=~(1< < 5);//關(guān)閉
/*2. 配置定時(shí)器的核心寄存器*/
TIM7- >PSC=psc-1; //預(yù)分頻
/*計(jì)數(shù)器的時(shí)鐘頻率CK_CNT等于fCK_PSC/(PSC[15:0]+1)*/
TIM7- >ARR=arr; //重裝載寄存器
TIM7- >CR1|=1< < 0; //使能計(jì)數(shù)器
}
Main.c文件中代碼如下
#include 'stm32f4xx.h' // Device header
#include 'led.h'
#include 'delay.h'
#include 'key.h'
#include 'usart.h'
#include 'sys.h'
#include 'exti.h'
#include 'timer.h'
int main(void)
{
LED_Init();
KEY_Init();
USART1_Init(84,115200);
KEY_EXTI_Init();
/*
1/84000000得到定時(shí)器加的1的時(shí)間單位us
1/84000得到定時(shí)器加的1的時(shí)間單位ms
1/84得到定時(shí)器加的1的時(shí)間單位s =0.0119047619047619
*/
Time7_InitConfig(84,1000); //定時(shí)器7初始化
/*
分頻84,最終頻率1HMZ 計(jì)數(shù)器CNT+1的時(shí)間是1us
*/
while(1)
{
if(TIM7- >SR&1< < 0) //判斷時(shí)間是否到達(dá)
{
TIM7- >SR&=~(1< < 0); //清除標(biāo)志位
LED0=!LED0;
LED1=!LED1;
}
}
}
【3】基本定時(shí)器中斷配置示例
在timer.c文件增加以下代碼
#include 'timer.h'
/*
函數(shù)功能:基本定時(shí)器7初始化配置
函數(shù)形參:
psc :預(yù)分頻系數(shù)
arr :重載值
說(shuō)明:定時(shí)器的視頻頻率為84MHZ ,是APB1時(shí)鐘頻率的2倍
*/
void Time7_InitConfig(u16 psc,u16 arr)
{
/*1. 開(kāi)時(shí)鐘*/
RCC- >APB1ENR|=1< < 5; //開(kāi)啟定時(shí)器7的時(shí)鐘
RCC- >APB1RSTR|=1< < 5; //開(kāi)啟復(fù)位時(shí)鐘
RCC- >APB1RSTR&=~(1< < 5);//關(guān)閉
/*2. 配置定時(shí)器的核心寄存器*/
TIM7- >DIER|=1< < 0; //開(kāi)啟中斷
SetNVICPriorityGrouping(TIM7_IRQn,1,1); //設(shè)置中斷優(yōu)先級(jí)
TIM7- >PSC=psc-1; //預(yù)分頻
/*計(jì)數(shù)器的時(shí)鐘頻率CK_CNT等于fCK_PSC/(PSC[15:0]+1)*/
TIM7- >ARR=arr; //重裝載寄存器
TIM7- >CR1|=1< < 0; //使能計(jì)數(shù)器
}
/*
函數(shù)功能:定時(shí)器中斷服務(wù)函數(shù)
*/
void TIM7_IRQHandler(void)
{
TIM7- >SR=0x0;
LED0=!LED0;
LED1=!LED1;
}
Main.c文件代碼如下
#include 'stm32f4xx.h' // Device header
#include 'led.h'
#include 'delay.h'
#include 'key.h'
#include 'usart.h'
#include 'sys.h'
#include 'exti.h'
#include 'timer.h'
int main(void)
{
LED_Init();
KEY_Init();
USART1_Init(84,115200);
KEY_EXTI_Init();
/*
1/84000000得到定時(shí)器加的1的時(shí)間單位us
1/84000得到定時(shí)器加的1的時(shí)間單位ms
1/84得到定時(shí)器加的1的時(shí)間單位s =0.0119047619047619
*/
Time7_InitConfig(84,65000); //定時(shí)器7初始化
/*
分頻84,最終頻率1HMZ 計(jì)數(shù)器CNT+1的時(shí)間是1us
*/
while(1)
{
}
}
上一篇:怎樣調(diào)試STM32硬件錯(cuò)誤HardFault
下一篇:詳細(xì)的STM32啟動(dòng)配置流程解析
- 熱門(mén)資源推薦
- 熱門(mén)放大器推薦
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦
- 神經(jīng)形態(tài)芯片可能是革新機(jī)器人實(shí)時(shí)電機(jī)控制的未來(lái)
- 從三個(gè)方面理解ARM嵌入式系統(tǒng)
- 自動(dòng)報(bào)警 基于MCU的家庭防盜報(bào)警系統(tǒng)的設(shè)計(jì)
- 存儲(chǔ)控制器及其訪問(wèn)外設(shè)的原理
- 基于51系列單片機(jī)的智能照明控制系統(tǒng)設(shè)計(jì)方案
- 基于STM32的四旋翼飛行器控制系統(tǒng)
- 單片機(jī)應(yīng)用編程技巧解析
- 基于89C52的教室智能節(jié)能照明系統(tǒng)設(shè)計(jì)
- 一種新型的雨量光照傳感器的設(shè)計(jì)
- L6985F 38V、500mA 同步降壓開(kāi)關(guān)穩(wěn)壓器的典型應(yīng)用,具有 30 uA 靜態(tài)電流
- AM6TW-2405SZ 5V 6 瓦單路輸出 DC-DC 轉(zhuǎn)換器的典型應(yīng)用
- LTC4054L-4.2 的典型應(yīng)用 - ThinSOT 中的 150mA 獨(dú)立線性鋰離子電池充電器
- 采用MIC4575可調(diào)降壓穩(wěn)壓器的典型應(yīng)用電路
- 使用 TC7662B 電荷泵調(diào)節(jié)輸出電壓的典型應(yīng)用電路
- 使用 Asahi Kasei Microdevices Corporation 的 AK4220VQP 的參考設(shè)計(jì)
- CMC1003-2M??-55-8-KU、EP4CE55 USB Blaster 套件,允許在緊湊型模塊中實(shí)現(xiàn)通用邏輯功能、Altera Nios II 處理器操作
- LTC1046CS8 電池分路器的典型應(yīng)用電路
- ADP7118RD-EVALZ、LFCSP 評(píng)估板,用于評(píng)估 ADP7118 20V、200mA 低噪聲、CMOS LDO
- L7809C高輸入電壓電路典型應(yīng)用(配置1)
- ZDS2022示波器百集實(shí)操特輯之25:51種參數(shù)測(cè)量
- 押寶數(shù)據(jù)中心,Rambus力推的HBM3未來(lái)前景如何?
- STM8的TIM4定時(shí)器1ms進(jìn)入中斷
- 華為發(fā)布5G MetaAAU技術(shù):功耗降低30% 覆蓋提高30%
- 51單片機(jī)超聲波水位控制器設(shè)計(jì)
- DSO9104A示波器電平位置超差維修案例
- 摩擦色牢度測(cè)試儀簡(jiǎn)介
- 技術(shù)變革關(guān)口下,顯示面板技術(shù)及市場(chǎng)走勢(shì)將怎樣
- 談?wù)勚悄荞{駛的人機(jī)交互
- 解讀LPC210X之外部中斷寄存器
- 意法半導(dǎo)體推出先進(jìn)的 1600 V IGBT,面向高性價(jià)比節(jié)能家電市場(chǎng)
- EDPF-NT+分散控制系統(tǒng)網(wǎng)絡(luò)防護(hù)解決方案
- 基于PLC控制的易驅(qū)變頻器在布袋除塵器上的應(yīng)用
- 如何利用伺服自動(dòng)化實(shí)現(xiàn)成本降低和產(chǎn)能最大化?
- 壓力傳感器有哪些抗干擾措施?
- 破局!補(bǔ)盲dToF固態(tài)激光雷達(dá)輪番“出手”,禾賽FT120也要靠邊
- 利用正壓送風(fēng)壓力傳感器自動(dòng)控制火災(zāi)風(fēng)口壓力
- 多個(gè)傳感器間相互位置關(guān)系校準(zhǔn)方法
- 樓宇自控BA系統(tǒng)傳感器有哪些?
- 常見(jiàn)壓力傳感器工業(yè)原理匯總
- 挖角谷歌高管成功,F(xiàn)acebook 在自制芯片上能走多遠(yuǎn)?
- 半導(dǎo)體競(jìng)賽令芯片設(shè)備大熱,整并風(fēng)將持續(xù)
- 芯片和AI:科通芯城的下一步野心
- VC談芯片:沒(méi)有做好8-10年“長(zhǎng)期戰(zhàn)”的準(zhǔn)備就別進(jìn)場(chǎng)了
- 張忠謀與臺(tái)積電:半導(dǎo)體制造強(qiáng)者給大陸什么啟示
- 基于SoC的血壓檢測(cè)儀器的實(shí)現(xiàn)與設(shè)計(jì)
- 醫(yī)院采用 LINK UWB 無(wú)線高精度定位系統(tǒng)實(shí)現(xiàn)信息化管理
- 納米管纖維插入大腦,幫助記錄神經(jīng)元活動(dòng)
- 納米管纖維插入大腦,幫助記錄神經(jīng)元活動(dòng)
- 研發(fā)模擬人類(lèi)血液視網(wǎng)膜屏障的微流控芯片