510第8章定时器(单纯定时)资料.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STM32的定时器是个强大的模块,定时器使用的频率较高,相对而言也比较复杂。STM32中一共有11个定时器: 2个高级控制定时器(TIM1和TIM8),TIM1和TIM8挂在APB2总线上; 4个通用定时器(TIM2、TIM3、TIM4和TIM5),TIM2~TIM5则挂在APB1总线上; 2个基本定时器(TM6和TM7),TIM6~TIM7挂在APB1总线上; 2个看门狗定时器(独立看门狗(IWDG)、窗口看门狗(WWDG)) 1个系统嘀嗒定时器(SysTick)。 第八章 定时器 1、通用定时器 通用定时器是一个通过可编程预分频器驱动的16位自动装载计数器构成,每个定时器都是完全独立的。 4个通用定时器(TIM2、TIM3、TIM4和TIM5) 讨论问题: 1、时钟的来源 2、工作方式 3、具体实现 时钟源 内部时钟源 外部触发输入 触发输入 触发输出 定时器时钟 分频器的时钟输入 滤波后的定时器输入1 滤波后的定时器输入2 内部时钟 内部时钟定时需解决的问题 1、定时器使能 2、确定时钟的频率,即CK_INT 3、选择触发控制器的时钟源为外部或内部时钟源 1.2时基单元 可编程通用定时器的主要部分是一个16位计数器和与其相关的自动装载寄存器。计数器时钟由预分频器分频得到。计数器、自动装载寄存器和预分频器寄存器可以由软件读写。 产生溢出标志位,可选择是否采用中断方式处理 CK_INT 涉及3个寄存器: 计数器寄存器(TIMx_CNT) 预分频器寄存器 (TIMx_PSC) 自动装载寄存器 (TIMx_ARR) 计数器的计数模式有3种,分别是向上计数模式、向下计数模式、中央对齐模式有时也被称为向上/向下计数模式。 (1)向上计数模式 (2)向下计数模式 (3)中央对齐模式 内部时钟定时需解决的问题 4、确定PSC预分频系数,得到CK_CNT 5、确定计数器的计数模式 6、如何判断计数器一次计数结束 1.5 通用定时器寄存器 P97 控制寄存器1(TIMx_CR1) 控制寄存器2(TIMx_CR2) 从模式控制寄存器(TIMx_SMCR) DMA/中断使能寄存器(TIMx_DIER) 状态寄存器(TIMx_SR) 事件产生寄存器(TIMx_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; __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定义于文件“stm32f10x.h”中: 寄存器法编写程序时用到 定义及声明 …… #define APB1PERIPH_BASE PERIPH_BASE #define APB2PERIPH_BASE (PERIPH_BASE + 0x10000) #define AHBPERIPH_BASE (PERIPH_BASE + 0x20000) …… #define TIM2_BASE (APB1PERIPH_BASE + 0x0000) #define TIM3_BASE (APB1PERIPH_BASE + 0x0400) #define TIM4_BASE (APB1PERIPH_BASE + 0x0800) … #define TIM2

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档