STM32F207产生Pwm调压调制PWM输出的占空比达到调压的目的

前一阵做的项目牵扯到PWM调制电压,调节直流电机的速度,设置方式等都是相同的在频率一致的时候我们只需要调制PWM的占空比即可调整输出的电压的值,调节直流电机的速度。在此就调节电压的例子来说明PWM调节输出电压,做一个记录出来

在这里插入图片描述
从上图可以看到207的定时器有4个通道可以作为PWM通道的输出,我们选择time3的通道2 在PB5引脚输出,PB5可用作TIMER3_CH2通道的输出,如下图所示

引脚在这里插入图片描述

  1. 首先初始化配置PB5作为TIMER3_CH2功能
void Pwm_Gpio_Voltage_Config()//µ÷ÖƵçѹµÄPWM²úÉú²¨ÐÎ
{
 GPIO_InitTypeDef GPIO_InitStructure;
	
	u32 PrescalerValue  = 0;
 TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
 TIM_OCInitTypeDef TIM_OCInitStructure;
 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);	
 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);//???????

 
 /*GPIOB_Pin_5, TIM4_Channel2 PWM*/
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
 GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
 GPIO_Init(GPIOB, &GPIO_InitStructure);
 
 GPIO_PinAFConfig(GPIOB, GPIO_PinSource5, GPIO_AF_TIM3);//GPIOB_Pin9 TIM4_Ch4N,
	
 TIM_DeInit(TIM3);
 /* Compute the prescaler value */
 PrescalerValue = (uint16_t) ((120000000/2) / 20000000) - 1;
 
 /* Time base configuration */
 TIM_TimeBaseStructure.TIM_Period = 1330*2;//ARR ??????PWM??????
 TIM_TimeBaseStructure.TIM_Prescaler = PrescalerValue;//PSC ??????TIMx???????????
 TIM_TimeBaseStructure.TIM_ClockDivision = 0;
 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
 TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
 
 /* PWM1 Mode configuration: Channel4 */
 
 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
 TIM_OCInitStructure.TIM_Pulse = 333;//?????
 TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;//??????,???????????????
 TIM_OC2Init(TIM3, &TIM_OCInitStructure);
 TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);
 
 
 TIM_ARRPreloadConfig(TIM3, ENABLE);
 /* TIM4 enable counter */
 TIM_Cmd(TIM3, ENABLE);
	

}
  1. 改变PWM的占空比输出
void PWM_SET_Voltage(uint32_t  VoltageValue)//ÉèÖÃÕ¼¿Õ±ÈÉèÖóöÀ´µÄµçѹµÄÖµ
{
 

     	TIM3->CCR2 = VoltageValue;	

}
  1. 主函数测试
void main()
{
		PWM_SET_Voltage(500);
}

可以在PB5引脚测到不同占空比的波形输出,后端可以加上PWM控制电压的芯片,即可输出不同的电压的值。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值