蓝桥杯【物联网】零基础到国奖之路:十二. TIM

蓝桥杯【物联网】零基础到国奖之路:十二. TIM

  • [第一节 理论知识](#第一节 理论知识)
  • [第二节 cubemx配置](#第二节 cubemx配置)

第一节 理论知识

STM32L071xx器件包括4个通用定时器、1个低功耗定时器(LPTIM)、2个基本定时器、2个看门狗定时器和SysTick定时器。

通用定时器 (TIM2、TIM3、TIM21和TIM22)是STM32L071xx中嵌入了四个可同步的通用定时器。TIM2、TIM3是基于16位自动重载上/下计数器。包括了一个16预分频器。具有四个独立的通道,每个通道用于输入捕获/输出比较,PWM或单脉冲模式输出。TIM2/TIM3通用定时器可以协同工作,也可以与TIM21和TIM22配合使用。TIM21和TIM22基于16位自动重载上/下计数器。有两个独立的通道,用于输入捕获 输出比较、PWM或单脉冲输出。可以协同工作并与TIM2、TIM3同步。可以用作简单的时间基准,并由LSE时钟源提供时钟(32.768khz)提供独立于主cpu时钟的时间基准。
低功耗定时器 (L系列特有的)具有独立的时钟,如果符合由LSE、LSI或外部时钟计时。它能够从停止模式唤醒设备。支持以下功能:

16位上行计数器,带16位自动重装载寄存器

16位比较寄存器

可配置输出:脉冲、PWM

连续 单次拍摄模式

可选软件 硬件输入触发

可选时钟源:

内部时钟源:LSE、LSI、HSI或APB时钟

通过LPTIM输入的外部时钟源(没有内部时钟的情况下也能工作源运行,由脉冲计数器应用程序使用)

可编程数字毛刺滤波器

编码器模式
基本定时器 (TIM6、TIM7)可用作通用的16位时间基准。
独立看门狗 基于12位计数器和8位预分配器。由独立的37kHz内部RC提供时钟,并且由于它独立于主时钟,可以在停止和待机模式下运行。既可以用作看门狗在出现问题时重置设备,或作用应用程序超时的自由运行计时器管理。可以通过选项字节进行硬件或软件配置。计数器可以在调试模式下冻结。
窗口看门狗 基于一个7位下计数器,可设置为自由运行。可以用作看门狗,出现问题重置设备。它的时钟从主时钟。具有预警中断功能,计数器可以冻结调试模式。
SysTick定时器专用于操作系统,也可以用作标准计数器。基于具有自动重载功能和可编程时钟的24位下计数器源。HAL_Dalay();

第二节 cubemx配置

第一步;确保时钟频率是32Mhz。

第二步;选择内部时钟,选择预分配系数,选择自动重装载值;

定时器/计数器时间=((分频系数+1)*(自动重装载值+1)) / 主频,单位是秒,所以我们设置的是((31+1)x(999+1))/ 32000000 = 0.001s,就是1ms。也就是每隔0.001秒定时器2会产生一次定时/计数中断。

一般来说,分频系数设置为(主频数-1),因为分频后得到1MHz的时钟,然后具体时间通过自动重装载值调节。

开启nvic中断,点击enabled。

在tim.c找到声明句柄结构体

在hal_tim.c找到中断函数重写写定时器计数函数。

在主函数开启定时器中断。

可以在串口助手查看现象

相关推荐
自可乐3 分钟前
n8n全面学习教程:从入门到精通的自动化工作流引擎实践指南
运维·人工智能·学习·自动化
深蓝海拓29 分钟前
PySide6从0开始学习的笔记(二十六) 重写Qt窗口对象的事件(QEvent)处理方法
笔记·python·qt·学习·pyqt
qqssss121dfd32 分钟前
STM32H750XBH6的ETH模块移植LWIP
网络·stm32·嵌入式硬件
jkyy20141 小时前
健康座舱:健康有益赋能新能源汽车开启移动健康新场景
人工智能·物联网·汽车·健康医疗
星火开发设计2 小时前
C++ 预处理指令:#include、#define 与条件编译
java·开发语言·c++·学习·算法·知识
想放学的刺客2 小时前
单片机嵌入式试题(第27期)设计可移植、可配置的外设驱动框架的关键要点
c语言·stm32·单片机·嵌入式硬件·物联网
天昊吖2 小时前
stc8H启用DMA发送后 卡住【踩坑日志】
单片机
李永奉2 小时前
杰理芯片SDK开发-ENC双麦降噪配置/调试教程
人工智能·单片机·嵌入式硬件·物联网·语音识别
BackCatK Chen3 小时前
第 1 篇:软件视角扫盲|TMC2240 软件核心特性 + 学习路径(附工具清单)
c语言·stm32·单片机·学习·电机驱动·保姆级教程·tmc2240
兆龙电子单片机设计3 小时前
【STM32项目开源】STM32单片机多功能电子秤
stm32·单片机·开源·毕业设计·智能家居