void timx_pwm_init(TIM_TypeDef* TIMx,u8 CHn,float freq,float duty)//u8 duty)//,u8 channel)
{
// uint16_t Prescaler;//,period;//duty=0~100
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
// get_pwm_div_period( freq,&Prescaler,&period);
if(TIMx==TIM1) RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);
else if(TIMx==TIM15) RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM15, ENABLE);
else if(TIMx==TIM16)RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM16, ENABLE);
else if(TIMx==TIM17)RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM17, ENABLE);
//RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
else if(TIMx==TIM3)RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
else if(TIMx==TIM6)RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE);
pwm 输出
这段代码展示了如何在STM32微控制器上初始化并配置PWM输出,包括选择定时器、设置频率和占空比。通过计算合适的预分频器和周期值,实现了对PWM信号频率和占空比的精确控制。
摘要由CSDN通过智能技术生成