timer1 能同时用来产生定时器中断 和 输出2路pwm吗?
离线
是可以的,定时器中断和pwm输出并不冲突,只是频率只能设置一样的
离线
请教,每个定时器的四个PWM通道是固定IO口的,如果我想使任意IO口输出PWM波,能不能用定时器的PWM功能但不产生输出,而是我自己设置IO口?
离线
没有该复用功能的引脚不可以
离线
没有该复用功能的引脚不可以
试了下,可以在定时器更新中断和比较中断里分别置位/复位IO口,达到自己指定IO口PWM输出。
离线
Wufeng 说:没有该复用功能的引脚不可以
试了下,可以在定时器更新中断和比较中断里分别置位/复位IO口,达到自己指定IO口PWM输出。
挺新奇的做法,学习了
离线
请教,每个定时器的四个PWM通道是固定IO口的,如果我想使任意IO口输出PWM波,能不能用定时器的PWM功能但不产生输出,而是我自己设置IO口?
想了个用DMA的方法也许可行,不占用CPU时间。
用定时器驱动DMA,再利用GPIO BSRR寄存器,交替设置IO口高低电平。
比如要用定时器控制PF3做PWM,首先
uint32_t src[2] = { GPIO_Pin_3, GPIO_Pin_3<<16 };
DMA目标设为src,DMA目标是&GPIOF->BSRR。循环DMA模式。
用定时器的PWM或update等驱动DMA运行,这样DMA向BSRR循环写入两个值,从而让PF3循环切换高低。
离线