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

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

可以在串口助手查看现象

相关推荐
知识分享小能手9 分钟前
uni-app 入门学习教程,从入门到精通,uni-app组件 —— 知识点详解与实战案例(4)
前端·javascript·学习·微信小程序·小程序·前端框架·uni-app
wahkim17 分钟前
Flutter 学习资源及视频
学习
小白要努力sgy1 小时前
待学习--中间件
学习·中间件
rechol1 小时前
汇编与底层编程笔记
汇编·arm开发·笔记
~无忧花开~1 小时前
CSS学习笔记(五):CSS媒体查询入门指南
开发语言·前端·css·学习·媒体
Blossom.1181 小时前
把 AI“缝”进布里:生成式编织神经网络让布料自带摄像头
人工智能·python·单片机·深度学习·神经网络·目标检测·机器学习
吴鹰飞侠1 小时前
AJAX的学习
前端·学习·ajax
我的xiaodoujiao2 小时前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 19--测试框架Pytest基础 3--前后置操作应用
python·学习·测试工具·pytest
中科岩创2 小时前
青海某公路水渠自动化监测服务项目
大数据·人工智能·物联网
lzj_pxxw2 小时前
嵌入式开发技巧:舍弃标志位,用宏定义函数实现程序单次运行
笔记·stm32·单片机·嵌入式硬件·学习