原子哥,我pwm输出当频率高于100hz时是有用的,但是低于100hz时就输出不了,请问为什么呢?
TIM3_PWM_Init(40000-1,21-1); //84M/21=4Mhz的计数频率,重装载值1000,所以PWM频率为 4M/40000=100 hz.
TIM_SetCompare1(TIM3,20000); //修改比较值,修改占空比
这样输出是有用的
但是
TIM3_PWM_Init(400000-1,21-1); //84M/21=4Mhz的计数频率,重装载值1000,所以PWM频率为 4M/400000=10 hz.
TIM_SetCompare1(TIM3,200000); //修改比较值,修改占空比
这样输出是很诡异的568hz
但是
TIM3_PWM_Init(200000-1,21-1); //84M/21=4Mhz的计数频率,重装载值1000,所以PWM频率为 4M/200000=20 hz.
TIM_SetCompare1(TIM3,100000); //修改比较值,修改占空比
这样输出是没有波形的,求助。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
TIM_SetCompare1(TIM3,100000); 一样的超范围了
探索者F4的PWM初始化是U32类型的,没超范围
我也是初始化u32类型的,我翻到寄存器里看,arr寄存器是16位的
哈哈 对的吧……所以很奇怪我的探索者怎么就出来了
难道是因为我用的芯片是stm32f407VGT6而探索者是ZGT6?
一周热门 更多>