stm32mini定时器——HAL库

本文详细介绍了STM32系列微控制器中定时器的分类及其工作原理,包括高级定时器、通用定时器和基本定时器的特点及应用。此外还探讨了定时器的时间计算方法和特殊应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


本文讲解的主要是一些概念性的东西,具体内容见下篇博客,如有错误,望不吝指出。

定时器分类

不同芯片定时器个数不同,以STM32F103开发板为例,定时器分类:高级定时器,通用定时器,基本定时器。

定时器种类位数定时器模式产生DMA请求捕获/比较通道互补输出特殊应用场景
高级定时器(TIM1、TIM8)16向上、向下、向上向下可以带死区控制盒紧急刹车,PWM电机控制
通用定时器 (TIM2——TIM5)16向上、向下、向上向下可以通用。定时器计数,PWM输出,输入捕获,输出比较
基本定时器(TIM6、TIM7)16向上、向下、向上向下可以主要应用于驱动DAC

DMA直接存储器访问,控制主存与I/O设备交换信息,不占用CPU。
PWM脉冲宽度调制,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。
DAC即数/模转换器的简称,是将数字型号转换为模拟型号的一种装置。

应用:
1.更新:计数器向上溢出/向下溢出,定时器初始化(通过软件或内部/外部触发)
2.触发时间(计数器自动、停止、初始化或者由内部/外部触发计数)
3.输入捕获(测量输入信号的脉冲长度)
4.输出比较(产生输出波形)
5.支持针对定位的增量(正交)编码器和霍尔传感器电路
6.触发输入作为外部时钟或周期的电流管理

ps:使用定时器预分频器和RCC时钟控制器预分频器,脉冲长度和波形周期可以在几个微秒到几个毫秒之间调整,且stm32每个通用定时器互相独立,不共享资源。

通用定时器

在这里插入图片描述
先看通用定时器的工作原理图,其大概分为四个部分:
时钟
时基单元(自动重装载,更新事件)
输入捕获(通道对应着引脚,捕获电平)
输出比较(pwm输出调整)
比较需要了解的是时钟部分,有关于时钟源的选择:

①内部时钟 //RCC的TIMxCLK(内部时钟信号),一般默认使用
②外部时钟(TIMx_ETR)
③内部触发输入(ITRx)//使用一个定时器作为另一个定时器的预分频器
④ TIMx_CHx(外部通道)

定时器时间计算

时钟频率 = 72MHZ/(时钟预分频+1) = 1/TIM_Period
发生中断时间 = (TIM_Prescaler+1)* (TIM_Period+1)/FLK

时钟频率是指一秒钟会计数多少次,时钟周期是指多少次计数后会中断。比如时钟频率为2000,时钟周期为6000,就是3s中断一次。

这里介绍一下定时器的倍频器,可以从定时器时钟部分原理图看出,定时器的时钟不是直接来自APB1或APB2,而是来自输入为APB1或APB2的一个倍频器:
当APB1的预分频系数为1时,这个倍频器不起作用,定时器的时钟频率等于APB1的频率
当APB1的预分频系数为其它数值(即预分频系数为2、4、8或16)时,这个倍频器起作用,定时器的时钟频率等于APB1的频率的两倍。
这里我出现的疑惑是为什么不直接让时钟较高频率?原因是除了高速外设外,还有一些低速外设。
在这里插入图片描述
更为详细的讲解在这里放一个链接:
STM32通定时器时间设置步骤和计算公式方法寄存器值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值