我使用的是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);
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
哪里有这么说吗,你验证下嘛,改下预分频值,对比下结果就清楚了,时钟设置看下时钟系统章节
一周热门 更多>