stm32的PWM1和PWM2的区别解析

对于pwm1和pwm2模式的理解

其实在官方在数据手册提供就直接找到对于这两种模式的解释

PWM1

向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为有效电平,否则为
无效电平;在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为无效电平(OC1REF=0),否
则为有效电平(OC1REF=1)。

PWM2

在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为无效电平,否则为
有效电平;在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为有效电平,否则为无效电
平。
其实上面的就很直接说明了在只是在触发事件输出电平的不同区别而已,例如在pwm1模式下,定时器的计算值向上计数小于设定的比较值时为有效电平。

	TIM_OCInitStruct.TIM_OCMode = TIM_OCMode_PWM1;             //选择PWM1模式
	TIM_OCInitStruct.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能
	TIM_OCInitStruct.TIM_Pulse = 0;                            //设置待装入捕获比较寄存器的脉冲值
	TIM_OCInitStruct.TIM_OCPolarity = TIM_OCPolarity_High;     //设置输出极性
	TIM_OC3Init(TIM3,&TIM_OCInitStruct);                       //初始化输出比较参数

向上面的设置输出极性为高,也就是说在输出有效电平时是为高。在pwm2模式下反之不是有效电平。
如果你想修改有效电平的话,你可以去修改CCMR1的OC1M和OC2M。
因为PWM1和PWM2模式是由CCMR1的OC1M和OC2M来决定的。

  • 10
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
首先,我们需要明确一下什么是PWM调速。PWM(Pulse Width Modulation)是一种通过改变脉冲宽度来控制电机转速的技术。在PWM调速中,控制器会周期性地产生脉冲信号,脉冲宽度决定了电机的平均电压,从而影响电机的转速。 在STM32的HAL库中,我们可以使用TIM(定时器)模块来产生PWM信号。以下是一个简单的STM32 HAL库PWM调速代码示例: ```c #include "stm32f4xx_hal.h" TIM_HandleTypeDef htim3; void MX_TIM3_Init(void) { TIM_MasterConfigTypeDef sMasterConfig; TIM_OC_InitTypeDef sConfigOC; htim3.Instance = TIM3; htim3.Init.Prescaler = 83; htim3.Init.CounterMode = TIM_COUNTERMODE_UP; htim3.Init.Period = 999; htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; HAL_TIM_PWM_Init(&htim3); sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig); sConfigOC.OCMode = TIM_OCMODE_PWM1; sConfigOC.Pulse = 500; sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_1); HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1); } int main(void) { HAL_Init(); MX_TIM3_Init(); while (1) { // do something } } ``` 在这个示例中,我们使用了TIM3模块来产生PWM信号。在MX_TIM3_Init函数中,我们先对TIM3进行初始化,设置了预分频器值为83,定时器模式为向上计数,周期为999,时钟分频系数为1。然后,我们配置了PWM输出通道1的模式为PWM1,占空比为50%。最后,我们启动了PWM输出,使得PWM信号开始产生。 在实际应用中,我们可以通过改变占空比来调节电机的转速。比如,当占空比为100%时,电机会以最大转速运转;当占空比为0%时,电机会停止运转。我们可以通过调整占空比来控制电机的转速,从而实现智能小车的控制。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐乐小工厂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值