STM32定时器的PWM输入

/ 0评 / 0

PWM输入捕获是输入捕获的一个特例,他要捕获PWM的周期和脉宽.一个定时器刚好链接两个IC输入.

那么PWM捕获输入的原理,也就从这里打通经脉.

高深的不说,那是各种什么原理,没必要了解,我们最重要是目的.看看实际逻辑.

IC2就是占空比,IC1就是周期长度,这样PWM就捕获了,如果频率太高,估计还要DMA,但是至少不用进入后然后更换边沿再捕捉.配置方法也说了.

看这么多,晕了,其实就是说明,Cube里面这么配置,就OK了.记得改Period(ARR)是0xFFFF哦.

生成的定时器初始化代码如下(最后5行是后自己打上的):

注意,最后5行是自己打的,特缩进来大家看看,这就是开启时钟和CC捕获.然后数值计算的中断.

我主频32MHz,定时器频率也是32MHz,设置公式写16MHz,而占空比部分放大了100倍才能观察,不然是float型的,所以乘以100除以2,反正什么都折半算就对了.但是官方也有PWM Input参考代码不用折半,但是我发现结果不对,后来折半后结果就对了.看效果.用的555生成点波形.看,这是25%占空比,245Hz.(此处25%指的是高电平的范围)

验证:

深入思考:

这个频率计,可以捕获的频率范围是多少呢?

答->可测得最小频率是 TIM时钟频率/65535 

精度又是多少呢?

答->精度就是 1/TIM时钟频率

怎么做一个自适应精度宽频率的测频计呢?

答->当频率过低的时候,增加TIM的分频系数,当频率过高时候,减少TIM的分频系数.

STM32L011K4-PWMInput

发表评论

电子邮件地址不会被公开。 必填项已用*标注