STM32-TIM输入捕获

输入捕获介绍:

IC(输入捕获),在输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值会被锁存到CCR中。用于测量PWM频率和占空比等数据。

每个高级定时器与通用定时器都有四个输入捕获通道。

频率测量:

输入捕获通道:

第一部分:TI1是CH1的引脚,ICF用于配置滤波器,TI1F经过滤波后的信号,fDTS采样时钟来源

第二部分:边沿检测器用于捕获上升沿与下降沿,CC1P是CCR寄存器用于选择极性,

可以产生TI1FP1,TI1FP2,TI2FP1,TI2FP2,四种连接方式。其中TI是代表不同引脚,FP是代表不同通道。

第三部分:CCS1对数据选择器进行选择,ICPS用于配置分频器,CC1E控制输出使能。

最后将CNT的值转运到CCR里,并且硬件电路可以自动化清除CNT(利用从模式控制器)

主模式与从模式

主模式是可以将定时器内部的外设映射到TRGO引脚,用于触发别的外设。

从模式是接收其他外设用于控制自身定时器运行。

输入捕获基本结构:

解释:信号通过GPIO进入经过滤波器、极性选择等变成TI1FP1信号(上升沿触发),当出现上升沿之后CNT当前计数值转运到CCR中,同时触发从模式清零CNT。

PWMI基本结构

新增了TI1FP2通道,也就是使下降沿触发,使在下降沿时CNT值转运到CCR2中。此时CCR2/CCR1就是占空比。

输入捕获模式测频率代码:

步骤1:开启RCC时钟,打开GPIO与TIM时钟。把GPIO设置成输入模式(上拉)。

步骤2:配置时基单元,使CNT在内部时钟驱动下实现自增运行。

步骤3:配置输入捕获单元,包括滤波器、极性选择、直连或交叉连接、分频器等配置(用结构体)。

步骤4:选择从模式触发源,触发源选择TI1FP1(调用库函数)

步骤5:选择触发之后的操作。(Resert操作)

步骤6:启动定时器。

最后设置一个函数用来读取CCR1的值,并根据这个值计算输入信号频率。

IC部分初始化和获取频率函数:

这部分代码根据步骤进行配置,并新增IC_GetFreq获取频率代码,TIM_GetCapture1用于捕获寄存器的值。这个值一个周期里走了多少个数字脉冲。

主函数代码:

PWMI模式测频率占空比:

也是根据PWMI模式基本结构进行编码,在上个示例的基础上 使用 TIM_PWMIConfig(TIM3,&TIM_ICInitStruct);用来自动把剩下的一个初始化成相反的配置,快捷的把电路配置成PWMI模式。并且多配置了获取占空比的函数,用通道2的·CCR/通道1的CCR就可得到。

主函数代码:

相关推荐
蹊黎9 小时前
Linux 下用 C 语言实现进度条
linux·c语言·单片机
Zw-awa12 小时前
从 CPU 搬运到自动搬运:DMA、空闲中断和两块缓冲
stm32
无敌贵点大王12 小时前
从寄存器层面重学STM32(6)——串口USART实战部分
stm32·单片机·嵌入式硬件
庙堂龙吟奈我何12 小时前
二进制和十六进制
stm32·单片机
国科安芯14 小时前
长期在轨的计算底座:商业空间站与在轨服务飞行器健康管理中的抗辐射MCU—— 面向可维护空间平台的分层容错与安全通信综述
人工智能·单片机·嵌入式硬件·安全·低轨卫星·抗辐射
TST-魚爷14 小时前
小型视频会议室音频踩坑:一体化拾音扩音方案实测分享(易视讯)
stm32·电脑·音视频·钉钉·腾讯会议·zoom会议
不昀16 小时前
RMII切到10Mbps,50MHz参考时钟也要降到5MHz吗?
单片机·嵌入式硬件·硬件设计·以太网接口
路上有只喵17 小时前
认识元器件 · 单片机(MCU/MPU/SOC) · 实战篇6
单片机·嵌入式硬件
国科安芯17 小时前
核电站蒸汽发生器传热管在役无损检测模拟前端的低噪声供电研究
嵌入式硬件·ldo·低压差线性稳压器·无损检测·核电站·蒸汽发生器·传热管
集芯微电科技有限公司18 小时前
40V/24A高频率增强型GaN HEMT功率开关管/高频DC转换/电动工具/GaN充电器 方案首选
人工智能·科技·单片机·嵌入式硬件·深度学习·神经网络·生成对抗网络