金牌会员
 
- 积分
- 1299
- 金钱
- 1299
- 注册时间
- 2016-10-18
- 在线时间
- 211 小时
|
5金钱
原子哥,我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); //修改比较值,修改占空比
这样输出是没有波形的,求助。
|
最佳答案
查看完整内容[请看2#楼]
TIM3_PWM_Init(200000-1,21-1); 变量是u16类型的,你的200000超范围了
TIM_SetCompare1(TIM3,100000); 一样的超范围了
|