蓝桥杯【物联网】零基础到国奖之路:十二. 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找到中断函数重写写定时器计数函数。

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

可以在串口助手查看现象

相关推荐
练习时长两年半的Java练习生(升级中)16 分钟前
从0开始学习Java+AI知识点总结-18.web基础知识(Java操作数据库)
java·学习·web
Jayyih23 分钟前
嵌入式系统学习Day19(数据结构)
数据结构·学习
紫阡星影1 小时前
【模块系列】STM32&W25Q64
stm32·单片机·嵌入式硬件
xy_recording1 小时前
Day08 Go语言学习
开发语言·学习·golang
keer_zu2 小时前
STM32L051同时处理Alarm A和Alarm B中断
stm32·单片机·嵌入式硬件
黑客影儿2 小时前
黑客哲学之学习笔记系列(三)
笔记·学习·程序人生·安全·职场和发展·网络攻击模型·学习方法
酷飞飞3 小时前
STC8单片机驱动I2C屏幕:实现时间、日期与温湿度显示
单片机·嵌入式硬件·51单片机·嵌入式
厦门辰迈智慧科技有限公司3 小时前
水闸安全综合监测系统解决方案
网络·物联网·安全·自动化·监测
源远流长jerry6 小时前
STM32之MCU和GPIO
linux·c++·stm32·单片机·嵌入式硬件
风已经起了13 小时前
FPGA学习笔记——IIC协议简介
笔记·学习·fpga开发