单片机
返回首页

STM32 stm32cubeide 定时器

2025-10-28 来源:bilibili

一.STM32定时器概述

定时器是单片机中一个最基本的外设,可以提供定时计数,PWM,输入捕获和输出比较等多种应用。在STM32系列单片机中,最多有18个定时器,这些定时器根据功能的多少可以分为基本定时器,通用定时器和高级定时器。它们具有独立的硬件资源,对于一个确定型号的单片机可以有1~19个定时器。


下面一个表格记录了不同系列的单片机拥有的定时器的数量:


图1.1 定时器总览


不同类型的定时器有自己独特的特性,灵活多样的定时器配置可以在最低的成本下满足各种开发需求。

 

图1.2 不同定时器的特性


二.时钟源

STM32单片机中不同的外设挂载的总线不同,通常其基本的时钟频率也会有差别,下面表格是F4系列单片机的结构框图的一部份。从图1.4中可以看到TIM6挂载在APB1总线上,该总线的最大时钟频率为42MHz;TIM9挂载在APB2总线上改总线的最大时钟频率为84MHz。但总线上所对应的定时器的时钟频率却可能与总线频率不一致。

如图1.3可以看出定时器与总线时钟之间还有以一个分频器,可以调整定时器时钟频率。

 

图1.3 不同定时器的时钟频率


图1.4 不同外设对于的总线


三.基本定时器

3.1 时基单元的配置

基本定时器有TIM6,TIM7和TIM18。在CUBEIDE中基本定时器的配置界面如图1.5所示:

 

图1.5 TIM6 基本配置项


这里以TIM6为例,TIM6挂载在APB1时钟总线上,根据图1.3的时钟配置可知TIM6的时钟频率为84MHz。这里我们配置出一个1HZ的定时计数周期。首先我们需要对84MHz进行分频也即配置中的Prescaler,这是一个16位的寄存器,取值范围0~65534,

如公式(1-1)所示当Prescaler=8400时,分频后的定时器频率为10KHz,接下来就是设置counter period 即自动重装载值,自动重装载值的确定和计数模式有关,在基本定时器中只有一种上计数模式可以选择,为了将10KHz的频率降至1Hz则有:

即counter period应设置为10000。配置好定时器参数的界面如图1.6所示:

图1.6 TIM6 基本配置

 

3.2 中断的配置

在system core 标签中找到NVIC,勾选使能对应的定时器中断,并根据需要设置好定时器中断的优先级。

 

图1.7 中断优先级配置流程


3.3 编程之中断回调函数

在Drivers--->STM32F4xx_HAL_Driver--->src--->stm32f4xx_hal_tim.h文件中可以找到IDE已经生成好的回调函数,另外IDE还预留了可以用户绑定回调函数的接口,如图1.8所示。

 

图1.8 中断回调函数与自定义回调函数的绑定函数


在主函数中重新实现我们所需要的回调函数,如图1.9所示。

 

图1.9在主函数中重新实现回调函数


3.4总结

这里简单总结一下定时器的基本时钟频率的配置流程

图1.10 定时器基本配置流程

进入单片机查看更多内容>>
相关视频
  • 【TI MSPM0 应用实战】智能小车+工业角度编码器+血氧仪+烟雾探测器!硬核参考设计详解!

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

  • 直播回放: Microchip Timberwolf™ 音频处理器在线研讨会

  • 基于灵动MM32W0系列MCU的指夹血氧仪控制及OTA升级应用方案分享

精选电路图
  • 1瓦线性调频增强器

  • 家用电器遥控器

  • 12V 转 28V DC-DC 变换器(基于 LM2585)

  • 红外开关

  • DS1669数字电位器

  • HA1377 桥式放大器 BCL 电容 17W(汽车音频)

    相关电子头条文章