极客秀
搜索

STM32单片机中的定时器理论基础

之前有朋友留言问能不能出一期关于STM32中定时器的使用,本期我们介绍一下定时器基础。

在使用定时器前,我们需要了解定时器的工作原理,使用定时器时,会有一个计数器,每隔一定的时间使得计数值+1,当计数值到达我们的设定值时即为“溢出”,溢出是一种事件,同样的在STM32中它可以作为一种中断源来触发中断。
这样子我们每隔 (计数值 * 计数间隔) 就可以实现每隔一段时间触发一次中断,这也就是定时器的工作原理。 当然,这个计数值是存在最大值的。

例如一个16位定时器其最大值是65532,当然STM32中有些型号也具有32位定时器,这代表着他们的 ** 最大定时时间 **
比16位定时器提高了数个数量级。
例如本期我用来演示的开发板STM32U0(也是前段时间巡回展领到的)其作为STM32系列中超低功耗单片机,其定时器TIM2也是32位定时器所以比通用定时器最大计数时间多上很多。

当定时器计数达到计数值时,可以清空定时器,使得计数为0,之后循环往复,但是计数的方法却有多种变换。

可以看到,在计数方式中有三种方式(实际上是五种),我们结合单片机手册来介绍这五种计数方式。
首先是三种常见的计数模式:向上计数,向下计数,中心对齐(向上/向下计数)

向上计数模式,即从 ** 定时器初值 ** 开始 ,向上靠拢设定计数值。

向下计数模式,即从 ** 计数最大值 ** 开始,向设定计数值靠拢。

而中心对齐模式也就是向上向下模式,先向上计数,再向下计数,这种方式常用来产生相位改变的PWM信号。

对于中心对齐模式分的比较仔细,提供了三种中心对齐模式,这其实对应了三种中断触发方式,这里以后有机会会在PWM中再仔细介绍,这里略一下。
当然啦,STM32中定时器还有许多妙用,例如PWM输出,输入捕获模式等等,不过最近比较忙没有时间去测试,本期介绍一下定时器理论基础,下期介绍定时器的中断机制和使用。

1.转载请保留原文链接谢谢!
2.本站所有资源文章出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。
3.本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户擦亮眼睛自行鉴别,做一个有主见和判断力的用户。
4.本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。
5.联系方式(#替换成@):pm#vimge.com

  相关内容