




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 STM32的定時器是個強大的模塊,定時器使用的頻率較高,相對而言也比較復(fù)雜。STM32中一共有11個定時器:2個高級控制定時器(TIM1和TIM8),TIM1和TIM8掛在APB2總線上;4個通用定時器(TIM2、TIM3、TIM4和TIM5),TIM2TIM5則掛在APB1總線上;2個基本定時器(TM6和TM7),TIM6TIM7掛在APB1總線上;2個看門狗定時器(獨立看門狗(IWDG)、窗口看門狗(WWDG))1個系統(tǒng)嘀嗒定時器(SysTick)。第八章 定時器1、通用定時器 通用定時器是一個通過可編程預(yù)分頻器驅(qū)動的16位自動裝載計數(shù)器構(gòu)成,每個定時器都是完全獨立的。 4個通用定時器(
2、TIM2、TIM3、TIM4和TIM5)討論問題:1、時鐘的來源2、工作方式3、具體實現(xiàn)時鐘源內(nèi)部時鐘源外部觸發(fā)輸入觸發(fā)輸入觸發(fā)輸出定時器時鐘分頻器的時鐘輸入濾波后的定時器輸入1濾波后的定時器輸入2內(nèi)部時鐘內(nèi)部時鐘定時需解決的問題1、定時器使能2、確定時鐘的頻率,即CK_INT3、選擇觸發(fā)控制器的時鐘源為外部或內(nèi)部時鐘源1.2時基單元時基單元 可編程通用定時器的主要部分是一個16位計數(shù)器和與其相關(guān)的自動裝載寄存器。計數(shù)器時鐘由預(yù)分頻器分頻得到。計數(shù)器、自動裝載寄存器和預(yù)分頻器寄存器可以由軟件讀寫。產(chǎn)生溢出標志位,可選擇是否采用中斷方式處理CK_INT涉及3個寄存器:計數(shù)器寄存器(TIMx_CN
3、T)預(yù)分頻器寄存器 (TIMx_PSC)自動裝載寄存器 (TIMx_ARR) 計數(shù)器的計數(shù)模式有3種,分別是向上計數(shù)模式、向下計數(shù)模式、中央對齊模式有時也被稱為向上/向下計數(shù)模式。(1)向上計數(shù)模式(2)向下計數(shù)模式(3)中央對齊模式內(nèi)部時鐘定時需解決的問題4、確定PSC預(yù)分頻系數(shù),得到CK_CNT5、確定計數(shù)器的計數(shù)模式6、如何判斷計數(shù)器一次計數(shù)結(jié)束1.5 通用定時器寄存器通用定時器寄存器 P97控制寄存器1(TIMx_CR1)控制寄存器2(TIMx_CR2)從模式控制寄存器(TIMx_SMCR)DMA/中斷使能寄存器(TIMx_DIER) 狀態(tài)寄存器(TIMx_SR)事件產(chǎn)生寄存器(TIM
4、x_EGR) 捕獲/比較模式寄存器1(TIMx_CCMR1) 捕獲/比較模式寄存器2(TIMx_CCMR2) 捕獲/比較使能寄存器(TIMx_CCER)計數(shù)器(TIMx_CNT)預(yù)分頻器(TIMx_PSC)自動重裝載寄存器(TIMx_ARR) 捕獲/比較寄存器1(TIMx_CCR1) 捕獲/比較寄存器2(TIMx_CCR2) 捕獲/比較寄存器3(TIMx_CCR3) .typedef struct _IO uint16_t CR1; /*控制寄存器1 */ uint16_t RESERVED0; _IO uint16_t CR2; /* 控制寄存器2 */ uint16_t RESERVED1
5、; _IO uint16_t SMCR; /* 從模式控制寄存器 */ uint16_t RESERVED2; _IO uint16_t DIER; /* DMA/中斷使能寄存器 */ uint16_t RESERVED3; _IO uint16_t SR; /* 狀態(tài)寄存器 */ uint16_t RESERVED4; _IO uint16_t EGR; /* 事件產(chǎn)生寄存器 */ uint16_t RESERVED5; TIM_TypeDef結(jié)構(gòu)TIM_TypeDef定義于文件“stm32f10 x.h”中:寄存器法編寫程序時用到定義及聲明#define APB1PERIPH_BASE P
6、ERIPH_BASE#define APB2PERIPH_BASE (PERIPH_BASE + 0 x10000)#define AHBPERIPH_BASE (PERIPH_BASE + 0 x20000)#define TIM2_BASE (APB1PERIPH_BASE + 0 x0000)#define TIM3_BASE (APB1PERIPH_BASE + 0 x0400)#define TIM4_BASE (APB1PERIPH_BASE + 0 x0800)#define TIM2 (TIM_TypeDef *) TIM2_BASE)#define TIM3 (TIM_Typ
7、eDef *) TIM3_BASE)#define TIM4 (TIM_TypeDef *) TIM4_BASE)鏈表形式訪問結(jié)構(gòu)中的成員結(jié)構(gòu)結(jié)構(gòu)TIM_TimeBaseInitTypeDef定義于文件定義于文件“stm32f10 x_tim.hstm32f10 x_tim.h”中:中:typedef struct u16 TIM_Period;設(shè)置了在下一個更新事件裝入活動的自動重裝載寄存器周期的值u16 TIM_Prescaler;設(shè)置了用來作為TIMx時鐘頻率除數(shù)的預(yù)分頻值。u8 TIM_ClockDivision;設(shè)置了時鐘分割為1,一般不用到u16 TIM_CounterMode;選
8、擇了計數(shù)器模式 TIM_TimeBaseInitTypeDef;TIM_PrescalerTIM_Period小結(jié):內(nèi)部時鐘定時需解決的問題1、確定時鐘的頻率,即CK_INT2、定時器使能3、選擇觸發(fā)控制器的時鐘源為外部內(nèi)部時鐘源4、確定PSC預(yù)分頻系數(shù),得到CK_CNT5、確定計數(shù)器的計數(shù)模式6、如何判斷計數(shù)器一次計數(shù)結(jié)束RCC時鐘配置TIM函數(shù)解決TIM更新標志位常用的函數(shù) 見函數(shù)庫TIM庫函數(shù) P2012、定時器應(yīng)用例程、定時器應(yīng)用例程(1)設(shè)計要求:使用定時器)設(shè)計要求:使用定時器2定時定時1秒,使發(fā)秒,使發(fā)光二極管以光二極管以2秒的周期閃爍,采用秒的周期閃爍,采用查詢方式查詢方式編編
9、程。程。其中發(fā)光二極管接在PF6腳。DS1DS2DS3DS41KR11KR21KR31KR43v3PF6PF7PF9PF8Advanced Peripheral Bus(APB)PCLK1通用定時器2時鐘信號完整的路線如下:OSC(8MHz) 系統(tǒng)時鐘(SYSCLK=72 MHz)AHB時鐘(HCLK= 72 MHz ) APB1分頻器,分頻系數(shù)為2(PCLK1:36 MHz)倍頻器(默認為乘以2倍)通用定時器2時鐘信號(72 MHz)。8MHz高速外部時鐘高速外部時鐘OSCAHB時鐘時鐘HCLK 低速低速AHB時鐘時鐘PCLK1=36M系統(tǒng)時鐘系統(tǒng)時鐘SYSCLK因為因為APB1的分頻系數(shù)為
10、2 其中,TIM_TimeBaseInitTypeDef定義于文件“stm32f10 x_tim.h”: typedef struct u16 TIM_Period; u16 TIM_Prescaler; u8 TIM_ClockDivision; u16 TIM_CounterMode; TIM_TimeBaseInitTypeDef;若采用的是定時器上溢, TIM_ClockDivision;為1,則定時頻率計算公式為:F=72M/(1+TIM_Prescaler)(1+TIM_Period)程序設(shè)置如下:設(shè)置好相應(yīng)的時鐘(要設(shè)置TIM2時鐘允許)I/O口初始化,主要是發(fā)光二極管TIM2的
11、相關(guān)配置主程序(1)時鐘配置除常規(guī)配置外,需加入: /* TIM2 clock enable */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); /* GPIOA clock enable */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF, ENABLE);(3)TIM2配置void TIM2_config(void) TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_DeInit(TIM2); /復(fù)位TIM2定時器 /* TIM2 配置*
12、/ TIM_TimeBaseStructure.TIM_Period = 9999; TIM_TimeBaseStructure.TIM_Prescaler = 7199; TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; /計數(shù)方向向上計數(shù) TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); TIM_ClearFlag(TIM2, TIM_FLAG_Update); /
13、* 清除TIM2溢出中斷標志*/ TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); /*TIM2溢出中斷允許*/ TIM_Cmd(TIM2, ENABLE); /*允許TIM2計數(shù)*/(4)主程序#include stm32f10 x.hint main(void) int count = 0; RCC_config(); /時鐘初始化 LED_config(); /LED燈初始化 TIM2_config(); /定時器TIM2初始化 while (1) if(TIM_GetFlagStatus(TIM2,TIM_FLAG_Update)=SET) TIM_
14、ClearFlag(TIM2,TIM_FLAG_Update); if(GPIO_ReadOutputDataBit(GPIOF,GPIO_Pin_6)=0) GPIO_SetBits(GPIOF,GPIO_Pin_6); else GPIO_ResetBits(GPIOF,GPIO_Pin_6); 2、定時器應(yīng)用例程、定時器應(yīng)用例程(2)設(shè)計要求:使用定時器)設(shè)計要求:使用定時器2定時定時1秒,使發(fā)秒,使發(fā)光二極管以光二極管以2秒的周期閃爍,采用秒的周期閃爍,采用中斷方式中斷方式編編程。程。其中發(fā)光二極管接在PF6腳。DS1DS2DS3DS41KR11KR21KR31KR43v3PF6PF7
15、PF9PF8程序設(shè)置如下:設(shè)置好相應(yīng)的時鐘I/O口初始化,主要是發(fā)光二極管TIM2的相關(guān)配置設(shè)置中斷相關(guān)內(nèi)容完成中斷函數(shù)主程序(3) TIM2的相關(guān)配置void TIM2_config(void) TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure TIM_DeInit(TIM2); /復(fù)位TIM2定時器 /* TIM2 configuration */ TIM_TimeBaseStructure.TIM_Period = 9999; TIM_TimeBaseStructure.TIM_Prescaler = 7199; TIM_TimeBaseStru
16、cture.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseStructure.TIM_CounterMode TIM_CounterMode_Up; /計數(shù)方向向上計數(shù) TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); TIM_ClearFlag(TIM2, TIM_FLAG_Update); TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); TIM_Cmd(TIM2, ENABLE); (4)設(shè)置中斷相關(guān)內(nèi)容void NVIC_config() /* Enable
17、the TIM2 global Interrupt */NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); /選擇中斷分組0 NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn; /選擇TIM2全局中斷 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; /搶占式中斷優(yōu)先級設(shè)置為0 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; /響應(yīng)式中斷優(yōu)先級設(shè)置為0 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;/使能中斷 NVIC_Init(&NVIC_InitStructure);(5)完成中斷函數(shù)void TIM2_IRQHandler(void) TIM_ClearFlag(TIM2,TIM_FLAG_Update); if(GPIO_ReadOutputDataBit(GPIOF,GPIO_Pin_6)=0) GPIO_SetBits(GPIOF,GPIO_Pin_6);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 咨詢工程師決策視頻課件
- 2025年醫(yī)藥流通行業(yè)供應(yīng)鏈重構(gòu)與成本控制最佳實踐報告
- 2025年虛擬現(xiàn)實(VR)設(shè)備在虛擬現(xiàn)實社交中的應(yīng)用現(xiàn)狀與未來發(fā)展趨勢研究報告
- 保潔員培訓(xùn)題庫及答案
- 伴性遺傳考試試題及答案
- 醫(yī)療器械臨床試驗質(zhì)量管理規(guī)范化與2025年臨床試驗數(shù)據(jù)管理報告
- 中國電子信息行業(yè)運行情況月度報告(2025年1-4月)
- 安全生產(chǎn)知識培訓(xùn)試題及答案
- 餐飲外賣市場2025年增長瓶頸解析:破局策略與行業(yè)發(fā)展趨勢報告
- 2025年快時尚模式在時尚零售行業(yè)的數(shù)字化營銷策略與效果評估報告001
- 東方經(jīng)(已經(jīng)排好版)
- DB14-T 3225-2025 煤矸石生態(tài)回填環(huán)境保護技術(shù)規(guī)范
- 福建省廈門市2022-2023學(xué)年高二下學(xué)期質(zhì)量檢測生物試題(解析版)
- 2025年燃氣輪機值班員職業(yè)技能知識考試題庫
- 2025年山西焦煤西山煤電集團公司招聘筆試參考題庫含答案解析
- 催收合規(guī)培訓(xùn)
- 湖南中醫(yī)藥大學(xué)湘杏學(xué)院《民族地區(qū)社會工作》2023-2024學(xué)年第一學(xué)期期末試卷
- 重力式混凝土擋土墻施工方案
- 2024年盤扣式腳手架安裝服務(wù)合同一
- 出版策劃實務(wù)知到智慧樹章節(jié)測試課后答案2024年秋吉林師范大學(xué)
- 電梯工程師述職報告
評論
0/150
提交評論