【单片机stm32】定时器 --普通定时

什么是定时器

        定时器分为3种,主要为基本定时器、通用定时器、 高级定时器

        注意: 下文提到的定时器的时钟不一定等于系统的主频时钟!!因为定时器分为APB1和APB2挂载,要看的时钟频率应该是要看对应的APB1和APB2时钟!! 这个跟个人配置有关,有cubemx的直接看cubemx的时钟树配置频率就方便多了 !!!!!

基本定时器: 在我的理解是只能用于普通的定时功能,也就是中断唤醒

通用定时器 :可以用于pwm波的输出、占空比的输入捕获计算、双通道捕获

高级定时器:可以用于互补输出pwm波形、带有刹车功能(学生期间正常很少用到)

定时器的架构

        正常情况下,每个通用定时器和高级定时器有4个通道,4个通道可选择附带不同的功能,也就是用来赋予输出pwm波、输入捕获等功能。

自动重装值和预分频系数

        定时器最重要的2个参数是预分频系数自动重装值,这两个值的配置关系到定时器的周期。我们每个单片机都有特定的时钟----所谓时钟也就是每秒运行的频率(也可以理解为每秒计数的值),以stm32单片机为例,假设我们设置72M , 就是相当于一秒钟计数72000000下。然后预分频系数(所谓分频,顾名思义是分频率),由于系统内部有自带+1功能,所以我们设置都是要 xx -1 , 假设我们设置72-1 , 就相当于定时器每秒计数次数为72000000/72次,也就是1M 。然后自动重装值就是计数到多少值就重新装载寄存器。也就是可以理解为计数到多少就进入一次中断。所以,假设我们设置为2000-1  (同样要记住-1), 在前面预分频之后剩下1M,也就是1000000次/秒, 我们计数2000就进入一次中断, 那每次进入中断就是 2000/1000000秒, 也就是2毫秒。 所以这样子定时器的周期就是2毫秒了。

        简化计算公式:定时器频率 = 时钟/(预分配系数+1)/(自动重装值+1)

                                定时器周期 = 1/定时器频率  单位:毫秒

特别注意点:!!

        由于自动重装值和预分频系数的配置定时器只有16个位,所以2个的配置值都不能超过2^16  -1    也就是 65535    .     特别要注意!!

其他

        其他配置主要就是:

        1.中断的开启关闭

        2.计数方式 -->  向上计数还是向下计数 ,  向上是从0计数到自动重装值, 向下是从自动重装值计数到0

        3.定时器中断优先级的选择 --->  这个主要跟NVIC系统中断挂钩了

常用定时周期配置:

以系统时钟为72M为例        

        1秒:  频率: 1 =  72000000/ 7200 /  10000  :    所以可以配置为 7200-1 和 10000-1

        2秒: 频率 : 0.5 = 72000000 / 7200 / 20000 :   配置为: 7200-1 和 20000-1

        0.5秒:频率: 2 = 72000000 / 7200 / 5000   :   配置为 7200-1 和 5000-1 

其中上面配置的0的个数可以在2个值之间变化,比如0.5秒写成 720-1 和 50000-1.  

前提就是不要超过 65535 !!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值