TIM的综合使用(定时中断/输出比较/输入捕获)

📅 2026/7/18 4:14:52 👁️ 阅读次数 📝 编程学习
TIM的综合使用(定时中断/输出比较/输入捕获)

文章目录

    • 概要
    • 驱动电机
    • PWM测频率和PWMI模式
    • 小结

概要

一.输出比较
本实验以电机驱动风扇来表达实验现象,采用了stm_32F103C8T6芯片和TB6612电机驱动模块来进行实验
提示:这里可以添加技术概要
二.输入捕获
本实验通过OLED显示屏来显示频率并通过PWMI模式显示占空比,
体现输入捕获

驱动电机

首先根据接线图接线
接下来通过初始化电机和按键配置实现按键控制电机转动
1.按键初始化
使用Delay函数是为了消抖,防止重复计算
这里的while循环是为了判断是否松手和DELAY一起使用,可以有效防止重复计算

2.电机初始化
因为读取寄存器的值只能为正数,所以前面加一个负号
Setspeed是为了驱动电机

3.通过主函数实现

我们暂定电机正反转速度最高为100,所以当正转速度超过100时,跳转为反转100,这样可以通过一个函数进行正反转控制;通过OLED函数在OLED屏幕上显示当前速度。

PWM测频率和PWMI模式

1.首先看一下测频率的基本架构图
根据图像先了解大致步骤
第一步:RCC开启时钟
第二步:GPIO初始化
第三步:配置时基单元
第四步:配置输入捕获单元
第五步:选择从模式触发源
第六步:启动定时器

本次实验采用测周法来进行测频率,比较方便
2.接线图

2.主代码

开启RCC时钟并使能
配置GPIO口,使用上拉输入,配置到Pin_6口,因为没有万能表所以选择自己测自己,用Pin_6口进行接收波形
选择定时器
初始化时基单元
初始化输入捕获单元,并选择通道,因为这次实验只需要实现一个功能所以只用配置通道1;配置滤波器做用是为了消抖,提升测量精度;选择从模式,因为是接收波形所以不能使用主模式
最后打开定时器


使用PWM来输出波形
开启RCC
初始化GPIO,配置Pin_0口,并配置成推挽输出
初始化时基单元,并将ARR设成100-1方便计算
初始化PWM输出,选择模式1进行输出;极性配置为高电平
开启定时器


建立两个函数,一个可以更改CCR的值
第二个更改预分屏器的值

测占空比和测频率方法相同
第一步:RCC开启时钟
第二步:GPIO初始化
第三步:配置时基单元
第四步:配置输入捕获单元
第五步:选择从模式触发源
第六步:启动定时器

小结

写这个实验的时候,发现他更改了两次频率,不知道为什么,通过询问ai得出答案
PWM的频率是输出频率,来产生信号
第二个频率是TIM3捕获频率的计算方法
相当于一个是物品,另一个是尺子,尺子拥有自己的测量方法
互不干扰。