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

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

可以在串口助手查看现象

相关推荐
副露のmagic20 分钟前
更弱智的算法学习 day25
python·学习·算法
强子感冒了24 分钟前
Java 学习笔记:File类核心API详解与使用指南
java·笔记·学习
别了,李亚普诺夫28 分钟前
USB拓展坞-PCB设计学习笔记
笔记·学习
崇山峻岭之间1 小时前
Matlab学习记录30
开发语言·学习·matlab
清风6666661 小时前
基于单片机的电加热炉智能温度与液位PID控制系统设计
单片机·嵌入式硬件·mongodb·毕业设计·课程设计·期末大作业
朔北之忘 Clancy1 小时前
2020 年 6 月青少年软编等考 C 语言一级真题解析
c语言·开发语言·c++·学习·算法·青少年编程·题解
一路往蓝-Anbo1 小时前
第五篇:硬件接口的生死劫 —— GPIO 唤醒与测量陷阱
c语言·驱动开发·stm32·单片机·嵌入式硬件
Evand J1 小时前
【课题推荐】基于超分辨率技术的低功耗定位系统|低功耗物联网|信号处理。附MATLAB运行结果
物联网·matlab·信号处理
早日退休!!!2 小时前
ARM A核、ARM M核、X86与RISC-V架构:寄存器作用及上下文处理差异报告
arm开发·架构·risc-v
saoys2 小时前
Opencv 学习笔记:一文掌握四种经典图像滤波(均值 / 高斯 / 中值 / 双边)
笔记·opencv·学习