输入捕获介绍:
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就可得到。
主函数代码: