基于TIM定时中断的----内外时钟源选择

一、了解TIM定时器

1、TIM定时器简介

  • 预分频器:先把输入的高频时钟(比如 72MHz)"分频" 降低频率(比如 72MHz÷72000=1kHz);
  • 16 位计数器:对分频后的时钟进行计数(最大计数值是 2¹⁶=65536);
  • 自动重装寄存器:存你设置的 "目标计数值",计数到这个值就触发中断,同时计数器会自动清零、重新开始计数(自动重装)。
  • 时钟源选择:可以用内部系统时钟,也可以接外部引脚输入的时钟;
  • 输入捕获:比如测量外部信号的频率、占空比(把外部信号接定时器引脚,定时器记录信号跳变的时间);
  • 输出比较:比如生成 PWM 波(让引脚输出指定频率、占空比的方波);
  • 编码器接口:连接旋转编码器,读取旋转的角度、速度;
  • 主从触发:多个定时器联动(比如一个定时器触发另一个定时器启动)

2、TIM定时器类型

  • 基本定时器:功能最简单,只有定时 + 中断,没有输入捕获 / 输出比较等扩展功能(比如 STM32 的 TIM6、TIM7);
  • 通用定时器:支持定时、输入捕获、输出比较、编码器接口等(比如 TIM2-TIM5);
  • 高级定时器:功能最丰富,除了通用定时器的功能,还支持三相 PWM(用于电机控制)、死区控制等(比如 TIM1、TIM8)。

STM32中没有基本定时器;

A、基本定时器

实际分频系数=预分频器的值+1;

B、通用定时器

外部时钟模式1的输入可以是ETR引脚、其他定时器、CH1引脚、CH2引脚;

扩大时钟的范围;

⭐引出:ITR是什么?---见主页 AI学习

ITR与定时器的连接关系

C、高级定时器

3、定时中断基本结构

4、预分频器时序

5、计数器时序

6、RCC时钟树

二、定时中断与内外时钟源选择

1、定时中断代码编写

还是先给定时器建一个模块,因为定时器不涉及外部的硬件;所以放到可以System文件下;同上

还是一样的先写一个初始化函数;

2、定时中断

第一种方法;

第二种方法;

这样OLED上就会执行每秒加1的现象;

相关推荐
无敌贵点大王5 小时前
RTThread学习记录11——RT-Thread 设备模型吃透:UART/ADC/PWM/PIN 到底有什么区别?
c语言·stm32·学习·链表
崇山峻岭之间9 小时前
HC32F460PETB的PB2的Vout123
单片机
恶魔泡泡糖9 小时前
stm32F103C8T6标准库串口接收之中断方式2
stm32·单片机·嵌入式硬件
充哥单片机设计9 小时前
【STM32开源项目】智能小区充电桩
stm32·单片机·嵌入式硬件·毕业设计·小区充电桩·智能小区充电桩
嵌入式-老费10 小时前
esp32开发与应用(如何解决SoC冷启动的问题)
单片机·嵌入式硬件
充哥单片机设计11 小时前
【STM32开源项目】智能语音台灯
stm32·单片机·嵌入式硬件·毕业设计·单片机设计·智能语音台灯
EatFan11 小时前
全栈自造 Status Deck(四):硬件终于到了,从点亮屏幕到跑通第一个 Demo
单片机·物联网·esp32
sunoo-22912 小时前
【嵌入式裸机开发Day04】i.MX6ULL 蜂鸣器驱动详解:从引脚地址查找到代码实现全流程
arm开发·单片机·嵌入式硬件·学习·串口·裸机
Brilliantwxx13 小时前
【STM32】 SPI阻塞式通信与HAL源码 (源码分析)
stm32·单片机·嵌入式硬件
老当益壮梁奶奶14 小时前
ARM汇编学习笔记(五):从按键轮询到 GIC 中断控制器(ARM Cortex-A7 )
arm开发·笔记·单片机·嵌入式硬件