




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 STM32的定时器是个强大的模块,定时器使用的频率较高,相对而言也比较复杂。STM32中一共有11个定时器:2个高级控制定时器(TIM1和TIM8),TIM1和TIM8挂在APB2总线上;4个通用定时器(TIM2、TIM3、TIM4和TIM5),TIM2TIM5则挂在APB1总线上;2个基本定时器(TM6和TM7),TIM6TIM7挂在APB1总线上;2个看门狗定时器(独立看门狗(IWDG)、窗口看门狗(WWDG))1个系统嘀嗒定时器(SysTick)。第八章 定时器1、通用定时器 通用定时器是一个通过可编程预分频器驱动的16位自动装载计数器构成,每个定时器都是完全独立的。 4个通用定时器(
2、TIM2、TIM3、TIM4和TIM5)讨论问题:1、时钟的来源2、工作方式3、具体实现时钟源内部时钟源外部触发输入触发输入触发输出定时器时钟分频器的时钟输入滤波后的定时器输入1滤波后的定时器输入2内部时钟内部时钟定时需解决的问题1、定时器使能2、确定时钟的频率,即CK_INT3、选择触发控制器的时钟源为外部或内部时钟源1.2时基单元时基单元 可编程通用定时器的主要部分是一个16位计数器和与其相关的自动装载寄存器。计数器时钟由预分频器分频得到。计数器、自动装载寄存器和预分频器寄存器可以由软件读写。产生溢出标志位,可选择是否采用中断方式处理CK_INT涉及3个寄存器:计数器寄存器(TIMx_CN
3、T)预分频器寄存器 (TIMx_PSC)自动装载寄存器 (TIMx_ARR) 计数器的计数模式有3种,分别是向上计数模式、向下计数模式、中央对齐模式有时也被称为向上/向下计数模式。(1)向上计数模式(2)向下计数模式(3)中央对齐模式内部时钟定时需解决的问题4、确定PSC预分频系数,得到CK_CNT5、确定计数器的计数模式6、如何判断计数器一次计数结束1.5 通用定时器寄存器通用定时器寄存器 P97控制寄存器1(TIMx_CR1)控制寄存器2(TIMx_CR2)从模式控制寄存器(TIMx_SMCR)DMA/中断使能寄存器(TIMx_DIER) 状态寄存器(TIMx_SR)事件产生寄存器(TIM
4、x_EGR) 捕获/比较模式寄存器1(TIMx_CCMR1) 捕获/比较模式寄存器2(TIMx_CCMR2) 捕获/比较使能寄存器(TIMx_CCER)计数器(TIMx_CNT)预分频器(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; /* 状态寄存器 */ uint16_t RESERVED4; _IO uint16_t EGR; /* 事件产生寄存器 */ uint16_t RESERVED5; TIM_TypeDef结构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)链表形式访问结构中的成员结构结构TIM_TimeBaseInitTypeDef定义于文件定义于文件“stm32f10 x_tim.hstm32f10 x_tim.h”中:中:typedef struct u16 TIM_Period;设置了在下一个更新事件装入活动的自动重装载寄存器周期的值u16 TIM_Prescaler;设置了用来作为TIMx时钟频率除数的预分频值。u8 TIM_ClockDivision;设置了时钟分割为1,一般不用到u16 TIM_CounterMode;选
8、择了计数器模式 TIM_TimeBaseInitTypeDef;TIM_PrescalerTIM_Period小结:内部时钟定时需解决的问题1、确定时钟的频率,即CK_INT2、定时器使能3、选择触发控制器的时钟源为外部内部时钟源4、确定PSC预分频系数,得到CK_CNT5、确定计数器的计数模式6、如何判断计数器一次计数结束RCC时钟配置TIM函数解决TIM更新标志位常用的函数 见函数库TIM库函数 P2012、定时器应用例程、定时器应用例程(1)设计要求:使用定时器)设计要求:使用定时器2定时定时1秒,使发秒,使发光二极管以光二极管以2秒的周期闪烁,采用秒的周期闪烁,采用查询方式查询方式编编
9、程。程。其中发光二极管接在PF6脚。DS1DS2DS3DS41KR11KR21KR31KR43v3PF6PF7PF9PF8Advanced Peripheral Bus(APB)PCLK1通用定时器2时钟信号完整的路线如下:OSC(8MHz) 系统时钟(SYSCLK=72 MHz)AHB时钟(HCLK= 72 MHz ) APB1分频器,分频系数为2(PCLK1:36 MHz)倍频器(默认为乘以2倍)通用定时器2时钟信号(72 MHz)。8MHz高速外部时钟高速外部时钟OSCAHB时钟时钟HCLK 低速低速AHB时钟时钟PCLK1=36M系统时钟系统时钟SYSCLK因为因为APB1的分频系数为
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)程序设置如下:设置好相应的时钟(要设置TIM2时钟允许)I/O口初始化,主要是发光二极管TIM2的
11、相关配置主程序(1)时钟配置除常规配置外,需加入: /* 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); /复位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; /计数方向向上计数 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计数*/(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、定时器应用例程、定时器应用例程(2)设计要求:使用定时器)设计要求:使用定时器2定时定时1秒,使发秒,使发光二极管以光二极管以2秒的周期闪烁,采用秒的周期闪烁,采用中断方式中断方式编编程。程。其中发光二极管接在PF6脚。DS1DS2DS3DS41KR11KR21KR31KR43v3PF6PF7
15、PF9PF8程序设置如下:设置好相应的时钟I/O口初始化,主要是发光二极管TIM2的相关配置设置中断相关内容完成中断函数主程序(3) TIM2的相关配置void TIM2_config(void) TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure TIM_DeInit(TIM2); /复位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; /计数方向向上计数 TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); TIM_ClearFlag(TIM2, TIM_FLAG_Update); TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); TIM_Cmd(TIM2, ENABLE); (4)设置中断相关内容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; /抢占式中断优先级设置为0 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; /响应式中断优先级设置为0 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;/使能中断 NVIC_Init(&NVIC_InitStructure);(5)完成中断函数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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水果公司促销活动方案
- 汉朝古装活动方案
- 汽车漂移活动方案
- 毕业军事活动方案
- 母婴拓展活动方案
- 汽车滤芯活动方案
- 正品汉堡活动方案
- 核酸检测教育活动方案
- 梁家河宣传活动方案
- 沙龙策划活动方案
- T-CALC 005-2024 急诊患者人文关怀规范
- T-AHLPA 0003-2024 古树名木雷电灾害风险评估技术规范
- 2025年个人农产品购销合同范文
- 催收合规培训
- 液氨长输管道技术经济性分析
- 重力式混凝土挡土墙施工方案
- 2024年盘扣式脚手架安装服务合同一
- 透析器首次使用综合症的应急预案
- 河南开放大学本科《公司法律实务(本)》形考任务1-3+终考试题及答案
- 国开2024年《JavaScript程序设计》形考1-3答案
- 广东省四校2023-2024学年高二下学期期末联考+英语试卷(含答案)
评论
0/150
提交评论