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

STM32学习通用定时器基本定时功能.pdf

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

1. STM32 的 Timer 简介 STM32 中一共有 11 个定时器,其中 2 个高级控制定时器,4 个普通定时器和 2 个基本定时 器,以及 2 个看门狗定时器和 1 个系统嘀嗒定时器。其中系统嘀嗒定时器是前文中所描述的 SysTick,看门狗定时器以后再详细研究。今天主要是研究剩下的 8 个定时器。 定 时 计数器分 计数器类型 预分频系数 产生 DMA 捕 获 / 比 互 补 器 辨率 请求 较通道 输出 TIM1 16 位 向上,向下,向 1-65536 之间的 可以 4 有 TIM8 上/向下 任意数 TIM2 16 位 向上,向下,向 1-65536 之间的 可以 4 没有 TIM3 上/向下 任意数 TIM4 TIM5 TIM6 16 位 向上 1-65536 之间的 可以 0 没有 TIM7 任意数 其中 TIM1 和 TIM8 是能够产生 3 对 PWM 互补输出的高级登时其,常用于三相电机的驱动, 时钟由 APB2 的输出产生。TIM2-TIM5 是普通定时器,TIM6 和 TIM7 是基本定时器,其时 钟由 APB1 输出产生。由于 STM32 的 TIMER 功能太复杂了,所以只能一点一点的学习。 因此今天就从最简单的开始学习起,也就是 TIM2-TIM5 普通定时器的定时功能。 2. 普通定时器 TIM2-TIM5 2.1 时钟来源 计数器时钟可以由下列时钟源提供: ·内部时钟(CK_INT) ·外部时钟模式 1:外部输入脚(TIx) ·外部时钟模式 2:外部触发输入(ETR) ·内部触发输入(ITRx):使用一个定时器作为另一个定时器的预分频器,如可以配置一 个定时器 Timer1 而作为另一个定时器 Timer2 的预分频器。 由于今天的学习是最基本的定时功能,所以采用内部时钟。TIM2-TIM5 的时钟不是直 接来自于 APB1,而是来自于输入为 APB1 的一个倍频器。这个倍频器的作用是:当 APB1 的预分频系数为 1 时,这个倍频器不起作用,定时器的时钟频率等于 APB1 的频率;当 APB1 的预分频系数为其他数值时(即预分频系数为 2、4、8 或 16),这个倍频器起作用,定时器 的时钟频率等于 APB1 的频率的 2 倍。APB1 的分频在 STM32_SYSTICK 的学习笔记中有详 细描述。通过倍频器给定时器时钟的好处是:APB1 不但要给 TIM2-TIM5 提供时钟,还要 为其他的外设提供时钟;设置这个倍频器可以保证在其他外设使用较低时钟频率时, TIM2-TIM5 仍然可以得到较高的时钟频率。 2.2 计数器模式 TIM2-TIM5 可以由向上计数、向下计数、向上向下双向计数。向上计数模式中,计数器从 0 计数到自动加载值(TIMx_ARR 计数器内容),然后重新从 0 开始计数并且产生一个计数器溢 出事件。在向下模式中,计数器从自动装入的值(TIMx_ARR)开始向下计数到 0,然后从自 动装入的值重新开始,并产生一个计数器向下溢出事件。而中央对齐模式(向上/向下计数) 是计数器从 0 开始计数到自动装入的值-1,产生一个计数器溢出事件,然后向下计数到 1 并 且产生一个计数器溢出事件;然后再从 0 开始重新计数。 2.3 编程步骤 1. 配置系统时钟; 2. 配置 NVIC; 3. 配置 GPIO; 4. 配置 TIMER; 其中,前 3 项在前面的笔记中已经给出,在此就不再赘述了。第 4 项配置 TIMER 有如下配 置: (1) 利用 TIM_DeInit()函数将 Timer 设置为默认缺省值; (2) TIM_InternalClockConfig()选择 TIMx 来设置内部时钟源; (3) TIM_Perscaler 来设置预分频系数; (4) TIM_ClockDivision 来设置时钟分割; (5)

文档评论(0)

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

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

1亿VIP精品文档

相关文档