STM32中PWM的引數配置
阿新 • • 發佈:2019-02-04
我們引用ST官方給出的F10xStd3.5的庫中的TIM>PWM_Output中的例程來舉例
可以看出配置pwm引數主要是倆個函式
PrescalerValue = (uint16_t) (SystemCoreClock / 24000000) - 1; /* Time base configuration */ TIM_TimeBaseStructure.TIM_Period = 665; TIM_TimeBaseStructure.TIM_Prescaler = PrescalerValue; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); /* PWM1 Mode configuration: Channel1 */ TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_Pulse = CCR1_Val; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OC1Init(TIM3, &TIM_OCInitStructure);
你的頻率f=(SystemCoreClock/(PrescalerValue+1))/Period
f*Period=SystemCoreClock/(Prescaler+1)
當SystemCoreClock取72M時 不妨取Prescaler為71 這樣
f=1M/Period
而CRR1_Val是基於Period的佔空比