网站大量收购独家精品文档,联系QQ:2885784924

STM32例程定时器.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STM32例程定时器

实验目的 STM32定时器基本用法 STM32定时器固件库学习 定时器中断的使用 [编辑] 实验要求 完成一个跑马灯实验 1s的确定间隔时间 [编辑] 硬件分析 [编辑] 定时器 在STM32F10xxx系列的32位MCU上,定时器资源十分丰富,包括高级控制定时器,通用定时器和基本定时器。此外,还有能够实现定时功能的系统滴答定时器,实时时钟以及看门狗。关于这些定时器的介绍,占据了STM32F10xxx参考手册1/5的篇幅,可见其功能的强大。 在低容量和中容量的STM32F103xx产品,以及互联型产品STM32F105xx和STM32F107xx中,只有一个高级控制定时器TIM1。而在高容量和超大容量的STM32F103xx产品中,有两个高级控制定时器TIM1和TIM8。 在所有STM32F10xxx系列产品中,都有通用定时器TIM2~TIM5,除非另有说明。除此之外,在超大容量产品中,还有通用定时器TIM9~TIM14。 在高容量和超大容量的STM32F101xx和STM32F103xx产品,以及互联型产品STM32F105xx和STM32F107xx中,有两个基本定时器TIM6和TIM7。 其中,高级控制定时器的功能最为强大,可以实现所有其他定时器的所有功能。TrailBreaker开发板使用的是高容量的STM32F103ZE,因此有两个高级控制定时器TIM1和TIM8。下面我们就着重介绍这两个高级控制定时器。 [编辑] TIM1和TIM8简介 高级控制定时器(TIM1和TIM8)由一个16位的自动装载计数器组成,它由一个可编程的预分频器驱动。 它适合多种用途,包含测量输入信号的脉冲宽度(输入捕获),或者产生输出波形(输出比较、PWM、嵌入死区时间的互补PWM等)。 使用定时器预分频器和RCC时钟控制预分频器,可以实现脉冲宽度和波形周期从几个微秒到几个毫秒的调节。 关于实验中用到的LED部分原理图和GPIO跑马灯实验所用到的相同,在此不再多做介绍。 TIM1和TIM8定时器的功能包括: 16位向上、向下、向上/下自动装载计数器 16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65535之间的任意数值 多达4个独立通道: ─ 输入捕获 ─ 输出比较 ─ PWM生成(边缘或中间对齐模式) ─ 单脉冲模式输出 死区时间可编程的互补输出 使用外部信号控制定时器和定时器互联的同步电路 允许在指定数目的计数器周期之后更新定时器寄存器的重复计数器 刹车输入信号可以将定时器输出信号置于复位状态或者一个已知状态 如下事件发生时产生中断/DMA: ─ 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发) ─ 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数) ─ 输入捕获 ─ 输出比较 ─ 刹车信号输入 支持针对定位的增量(正交)编码器和霍尔传感器电路 触发输入作为外部时钟或者按周期的电流管理 [编辑] 高级定时器框图和时钟简介 如框图中的红框所示,红框中的部分,也是时基单元(Time-base unit),对时基单元进行设置,就可以完成基础的定时器的使用设置。 计数器时钟可由下列时钟源提供: ● 内部时钟(CK_INT) ● 外部时钟模式1:外部输入引脚 ● 外部时钟模式2:外部触发输入ETR ● 内部触发输入(ITRx):使用一个定时器作为另一个定时器的预分频器。如可以配置一个定时器Timer1而作为另一个定时器Timer2的预分频器。详见数据手册的通用定时器部分。 内部时钟源(CK_INT): 如果禁止了从模式控制器(SMS=000),则CEN、DIR(TIMx_CR1寄存器)和UG位(TIMx_EGR寄存器)是事实上的控制位,并且只能被软件修改(UG位仍被自动清除)。只要CEN位被写成’1’,预分频器的时钟就由内部时钟CK_INT提供。 下图显示控制电路和向上计数器在一般模式下,不带预分频器时的操作。 外部时钟源模式1 当TIMx_SMCR寄存器的SMS=111时,此模式被选中。计数器可以在选定输入端的每个上升沿或下降沿计数。 下图为TI2外部时钟连接例子 例如,要配置向上计数器在T12输入端的上升沿计数,使用下列步骤: 1.配置TIMx_CCMR1寄存器CC2S=01 2.配置通道2检测TI2输入的上升沿 3.配置TIMx_CCMR1寄存器的IC2F[3:0],选择输入滤波器带宽(如果不需要滤波器,保持IC2F=0000) 4.配置TIMx_CCER寄存器的CC2P=0,选定上升沿极性 5.配置TIMx_SMCR寄存器的SMS=111,选择定时器外部时钟模式1 6.配置TIMx_SMCR寄存器中的TS=110,选定TI2作为触发输入源

文档评论(0)

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

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

1亿VIP精品文档

相关文档