STM32定时器解析.ppt
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
从模式控制寄存器(TIMX_SMCR)
SMS[2:0]:从模式选择 (Slave mode selection) 000:关闭从模式 ,如果CEN=1,则预分频器直接由 内部时钟驱动。
DMA/中断使能寄存器(TIMX_DIER)
位0 (UIE):允许更新中断 (Update interrupt enable) 。0:禁止更新中断; 1:允许更新中断。
状态寄存器(TIMX_SR)
位0 (UIF):更新中断标记 (Update interrupt flag) 当产生更新事件时该位由硬件置’1’。它由软件清’0’。 0:无更新事件产生; 1:更新中断等待响应。 当寄存器被更新时该位由硬件置’1’:
− 若TIMx_CR1寄存器的UDIS=0、URS=0,当TIMx_EGR寄存器的UG=1时产生更 新事件(软件对计数器CNT重新初始化);
函数TIM_TIMEBASEINIT
功能:根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基 数单位。
函数原形: void TIM_TimeBaseInit ( TIM_TypeDef* TIMx,
TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct) 其中,TIMx:x可以是2,3或者4,来选择TIM外设。 TIMTimeBase_InitStruct:指向结构TIM_TimeBaseInitTypeDef的指针,包含
了TIMx时间基数单位的配置信息。
TIM_TIMEBASEINITTYPEDEF STRUCTURE
typedef struct {
u16 TIM_Period; /*TIM_Period设置了在下一个更新事件装入活动的自动
重装载寄存器周期的值,0x0000和0xFFFF之间*/
− 若TIMx_CR1寄存器的UDIS=0、URS=0,当计数器CNT被触发事件重初始化时 产生更新事件。(参考同步控制寄存器的说明)
6.3 库函数
TIM_DeInit :将外设TIMx寄存器重设为缺省值。 TIM_TimeBaseInit :根据TIM_TimeBaseInitStruct 中指
通用TIMX 定时器主要功能
(1)16位向上、向下、向上/向下自动装载计数器 (2)16位可编程(可以实时修改)预分频器,计数器时钟频率的分频
系数为1~65536之间的任意数值 (3) 4个独立通道: ①输入捕获;②输出比较;③PWM生成(边缘
或中间对齐模式);④单脉冲模式输出
(4)使用外部信号控制定时器和定时器互连的同步电路。 (5)如下事件发生时产生中断/DMA:
定的参数初始化TIMx的时间基数单位。 TIM_TimeBaseStructInit :把TIM_TimeBaseInitStruct
中的每一个参数按缺省值填入。 TIM_Cmd :使能或者失能TIMx外设。 TIM _ITConfig :使能或者失能指定的TIM中断。 TIM_PrescalerConfig :设置TIMx预分频 TIM_GetFlagStatus :检查指定的TIM标志位设置与否 TIM_ClearFlag :清除TIMx的待处理标志位 TIM_ClearITPendingBit :清除TIMx的中断待处理位
CR1: 控制寄存器1 CR2: 控制寄存器2 SMCR:从模式控制寄存器 DIER: DMA/中断使能寄存器 SR: 状态寄存器 EGR: 事件产生寄存器 CCMR1:捕获/比较模式寄存器1 CCMR2:捕获/比较模式寄存器2 CCER: 捕获/比较使能寄存器
CNT : 计数器寄存器 PSC : 预分频寄存器 APR : 自动重装载寄存器 CCR1 :捕获/比较寄存器1 CCR2 :捕获/比较寄存器2 CCR3 :捕获/比较寄存器3 CCR4 :捕获/比较寄存器4 DCR : DMA控制寄存器 DMAR :连续模式的DMA地址寄存器
定时器都是16位的。 通用定时器4个:TIM2、TIM3、TIM4和TIM5。它适用于多
种场合,包括测量输入信号的脉冲长度(输入捕获)或者产 生输出波形(输出比较和PWM)。 高级定时器2个:TIM1和TIM8。比通用定时器功能更强大, 适用于更多场合。
基本定时器2个:TIM6和TIM7。主要用于产生DAC触发信 号,也可当做通用的16位时基计数器。
第6讲 STM32定时器
实验六 定时器实验
实验目的:掌握定时器的工作原理与编程实现定时 的方法。
实验内容: 1)利用TIM2定时500ms,LED1、LED3同时亮灭一次; TIM3定时2 s,LED2、LED4亮灭一次。 2)利用SysTick实现定时1秒钟,LED切换一次亮灭状 态。
主要内容
更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/ 外部触发) ;
触发事件(计数器启动、停止、初始化或者由内部/外部触发计数) ; 输入捕获; 输出比较 ; 支持针对定位的增量(正交)编码器和霍尔传感器电路; 触发输入作为外部时钟或者按周期的电流管理。
6.2 通用定时器TIMX相关寄存器
控制寄存器1(TIMX_CR1)
CEN:使能计数器。 0:禁止计数器; 1:使能计数器。 DIR:方向 (Direction) 。0:计数器向上计数; 1:计数器向
下计数。 CMS[1:0]:选择中央对齐模式 (Center-aligned mode
selection) 参见“ STM32中文参考手册_V10.pdf ”
6.1 6.2 6.3 6.4 6.5 6.6
STM32定时器概述 通用定时器TIMx相关寄存器 库函数 程序设计方法 系统时钟SysTick简介 SysTick应用实例
6.1 STM32定时器概述
名为TIMx的定时器有8个,其中TIM1和TIM8挂在APB2总线 上,而TIFra Baidu bibliotek2-TIM7则挂在APB1总线上。 APB2可以工作在 72MHz下,而APB1最大是36MHz。