电压原理"/>
STM32 PWM可控制电压原理
PWM可控制电压原理
主要通过PWM 输入模式根据控制单位时间内输出的平均电压,以调节电压大小。而PWM输出模式通过调节占空比,控制平均电压大小;
设置TIM为PWM输出模式
第一步:时钟使能:
GPIO,TIM;
第二步:设置引脚为复用模式
第三步:复用为指定TIM的PWM输出模式
第四步:定时器时基单元的配置
第五步:配置定时器的输出比较功能
void timeer14PWM_init(){
// 开启时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM14,ENABLE);//设置PWM输出引脚位复用模式GPIO_InitTypeDef GPIO_InitStruct;GPIO_InitStruct.GPIO_Pin=GPIO_Pin_9;GPIO_InitStruct.GPIO_Mode= GPIO_Mode_AF;GPIO_InitStruct.GPIO_OType=GPIO_OType_PP;GPIO_InitStruct.GPIO_Speed=GPIO_Low_Speed;GPIO_InitStruct.GPIO_PuPd=GPIO_PuPd_NOPULL;GPIO_Init(GPIOF,&GPIO_InitStruct);//设置配置GIPOGPIO_PinAFConfig(GPIOF,GPIO_PinSource9,GPIO_AF_TIM14);TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
// 设置分频 将84MH降为10000HzTIM_TimeBaseInitStruct.TIM_Prescaler=84-1;
// 设置计数模式往上加,还是往下减TIM_TimeBaseInitStruct.TIM_CounterMode=TIM_CounterMode_Up;
// 设置自动复位计数器为10000,恰好为1秒,2000相当于0.2秒TIM_TimeBaseInitStruct.TIM_Period=2000-1;
// 设置通用定时器分频为1TIM_TimeBaseInitStruct.TIM_ClockDivision=TIM_CKD_DIV1;
// 初始化定时器TIM_TimeBaseInit(TIM14, &TIM_TimeBaseInitStruct);//设置寄存器模式TIM_OCInitTypeDef TIM_OCInitStruct;
//设置位PWM输出模式TIM_OCInitStruct.TIM_OCMode=TIM_OCMode_PWM1;TIM_OCInitStruct.TIM_OutputState=TIM_OutputState_Enable;TIM_OCInitStruct.TIM_Pulse=100;TIM_OCInitStruct.TIM_OCPolarity=TIM_OCPolarity_Low;TIM_OC1Init(TIM14, &TIM_OCInitStruct);// 开启定时器TIM_Cmd( TIM14, ENABLE);}
更多推荐
STM32 PWM可控制电压原理
发布评论