输出固定个数的 PWM 波

2019-07-20 16:39发布

采用哪些方法可以输出固定个数的 PWM 波形?

目前有两种方法:
1.通过 TIM0 发送 PWM 波,然后通过 TIM1 定时,到达一定时间后(一般PWM周期是固定的),通过TIM1的定时器中断来关闭 PWM 输出。
2.讲 TIM0 输出 PWM 波的引脚链接到其他 GPIO 口上,通过外部中断每次捕捉出下降沿来实现软件计数,或者 TIM1 的计数模式捕捉计数。

以上两种设想应该可以实现,但都会占用额外的资源或者需要更改硬件,有没有办法,可以不需要占用其他外设且可以输出固定个数的 PWM 波?

这边我设想:TIM0 产生 PWM 时,定时器应该每次也会溢出,开启定时器中断,然后每产生一个 周期的PWM 波时,进入一次中断函数,软件计数加1,达到个数时关闭中断。

实验结果:多次实验,发现开启中断后 PWM 就会输出异常,多次尝试未果。

问题:是否可以通过我上述说的 PWM 加自身定时器中断来实现计数?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
noparkinghere
2019-07-21 06:59
来俩不甜的 发表于 2017-2-8 09:16
这个我还真没注意过,那就在初始化的时候先不要输出pwm,在某次你认为已经稳定的中断开启pwm输出,关闭的 ...

用的并不是 st 的芯片,但也是一款 m3 内核的芯片,做过多个实验,从 PWM 开启后,开始计数,然后第一个周期似乎被特意跳过去了,只能从第二个周期开始输出。实在不行的话,也只能怀疑,这个芯片就是如此设计的了。

一周热门 更多>