有多个定时器,每个定时器都能输出多路pwm。现在控制多路舵机或者多路LED调光的时候,一般不用定时器产生的pwm,因为太浪费mcu资源了。现在一般用外置的i2c接口的多路pwm模块,多组i2c模块并联,每个模块输出16路pwm。dfrobot和cjmcu都推出过相应的模块。
STM32单片机的定时器都是可以产生PWM的。单片机的型号不一样,定时器的数量也不一样。
就以TIM1为例,其可以产生4路PWM信号CH1-CH4,但是这4路的PWM信号频率是一样的,因为使用了同一个定时器周期。
但是这4路PWM信号的占空比是可以独立的任意更改的,只要修改对应的CCRX寄存器就可以了。
具体的代码可以查看市面上开源的开发板例程,也可以通过CubeMX软件生成。
STM32的TIM4口就有4路比较输出口,设置好比较定时器缓存,并设定重新计数值和占空比即可,同时一定要允许信号输出,则4路就会有PWM波发出
具体可以参考这篇文章,讲解很详细,http://bbs.elecfans.com/jishu_357019_1_1.html
可以,先选定定时器,再选择该定时器的通道,每个通道都有固定的引脚
可以的32有多个定时器,每个定时器又有4个PWM通道
完全可以产生多路PWM信号