19.3STM32的定时器的工作原理_第1页
19.3STM32的定时器的工作原理_第2页
19.3STM32的定时器的工作原理_第3页
19.3STM32的定时器的工作原理_第4页
19.3STM32的定时器的工作原理_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

STM32的定时器的工作原理1STM32程序设计案例教程电子工业出版社欧启标主要内容一、STM32定时器的核心单元构成二、STM32定时器的核心单元各单元的作用三、STM32定时器的定时原理一、STM32定时器的核心单元构成

STM32的定时器核心单元由以下四部分构成:预分频器、自动重载寄存器、计数器和捕获/比较寄存器(基本定时器没有这个寄存器),如图9-5所示。

STM32的3类常规定时器中,每一个定时器都有计数器、预分频器和自动重载寄存器,这些共同的单元我们称之为STM32的时基单元。●计数器CNT是整个定时器的核心,定时器的其他电路都围绕它进行设计,它对从预分频器输出的信号CK_CNT进行计数,每来一个脉冲计数器+1或减1,这由计数模式而定。如果计数模式设置为向上计数,则为+1,如果计数模式设置为向下计数,则为-1。●预分频器用于保存分频系数,这里要注意,STM32的预分频器的分频系数不等于分频值,实际的分频值为预分频器中保存的分频系数+1。●自动重载寄存器用于保存计数器的初值或者溢出值,如果计数模式为向下计数,则自动重载寄存器中保存的计数器的初值,如果计数模式为向上计数,则自动重载寄存器中保存的是计数器的溢出值。●捕获/比较寄存器用于保存比较值或者捕获计数值的值。二、STM32定时器的核心单元各单元的作用三、STM32定时器的定时原理【例9-1】假设AHB=168MHz,APB1的预分频系数为4,定时器的信号源为APB总线的倍频器的输出信号,该如何使用TIM3进行10ms的定时?分析:由于TIM3挂接在APB1的倍频器上,而APB1的预分频系数不为1,所以TIM3的输入信号的频率为APB1的倍频,即84MHz。可以采用以下两种方法来进行定时。方法一:采用向下计数方式定时。此时可以设置计数器的输入脉冲的周期为1us,计数器的初值为10000,然后一直循环读取计数器的值,当计数器的值等于0时,说明10ms的定时时间到,然后关闭计数器。采用这种方法时,可以将预分频器的值设置为83,计数器的初值设置为10000。此时的整个计数模块的数值和信号频率如图9-6所示方法二:采用向上计数方式。此时可以设置计数器的输入脉冲周期为1us,让计数器从0开始计数10000次直至溢出,通过监视溢出来判断10000次计数也即10ms是否到来。采用这种方法时,应该设置PSC的值为83,ARR的值为9999。此时的整个计数模块的数值和信号频率如图9-7所示。

也许有读者会问,采用方法二时ARR的值不应该是10000吗?怎么ARR的值会比需要计数的值少1呢?为了回答清楚这个问题,我们以水杯装水为例来说明。假设一个水杯可以装9999滴水,我们一滴一滴往该水杯装水,当装到第9999滴时,水杯刚好装满,注意,此时没有溢出,所以处理器还没有收到溢出信号。此时再往水杯滴入一滴水,此时水杯溢出,处理器收到溢出信号。所以从开始滴水到处理器收到溢出信号,一共滴入的水滴有9999+1滴。这就是为什么方法二中ARR的值会比计数次数要少一次的原因。而方法一则不是采用溢出的方法来判断计数结束,它是通过读取计数器的值来判断,当读到的计数器的值为0时,刚好数够10000次,所以方法一的初值为10000。

最后需要说明的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论