请教一下大家PWM波频率的计算方法

2019-07-20 04:03发布

我使用的是STM32F407的TIM9_CH1定时器产生PWM波,我是想产生一个38KHZ的PWM的,然后我配置TIM_Prescaler =(84-1),TIM_Period = 26 居然能产生38kHZ的PWM波。
我的疑惑是,如果按照正常的算法,不是应该TIM_Prescaler =(168-1),TIM_Period = 26才能得出38Khz的PWM波吗?TIM9是在APB2上的。时钟频率是168Mhz,按照我上面84分频的算法,怎么可能得出38Khz的PWM波呢???
附上一段我的代码:
      
    TIM_TimeBaseStructure.TIM_Prescaler=167;  
    TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
    TIM_TimeBaseStructure.TIM_Period=26;
    TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
    TIM_TimeBaseInit(TIM9,&TIM_TimeBaseStructure);

    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
     TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
    TIM_OCInitStructure.TIM_Pulse = 13;
    TIM_OC1Init(TIM9, &TIM_OCInitStructure);
    TIM_OC1PreloadConfig(TIM9, TIM_OCPreload_Enable);  
    TIM_ARRPreloadConfig(TIM9,ENABLE);
   
    TIM_Cmd(TIM9, ENABLE);  



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
Psheng
1楼-- · 2019-07-20 09:20
Yefeng是叶峰 发表于 2019-1-24 15:41
这句话是在哪里的

就是这样配置的。看下时钟精讲实验
Psheng
2楼-- · 2019-07-20 12:34
例程的锁相环配置是  APB2=FCLK/2=84MHz
亦辰
3楼-- · 2019-07-20 16:09
 精彩回答 2  元偷偷看……
Yefeng是叶峰
4楼-- · 2019-07-20 20:30
亦辰 发表于 2019-1-24 15:15
记得APB2时钟好像是84M的,你再去查查。。。。。

APB2确实是84M的 但是TIM9好像是2倍频168M的
Yefeng是叶峰
5楼-- · 2019-07-20 22:15
Psheng 发表于 2019-1-24 15:15
例程的锁相环配置是  APB2=FCLK/2=84MHz

这句话是在哪里的
Yefeng是叶峰
6楼-- · 2019-07-20 23:33
 精彩回答 2  元偷偷看……

一周热门 更多>