我是靠谱客的博主 爱笑书本,这篇文章主要介绍STM32 PWM,现在分享给大家,希望可以做个参考。

关于STM32CubeMX配置TIM3_CH2部分映像PB5

  1. 先配置启用定时器
  2. 再在Pinout View窗口找到PB5左击,选择TIM3_CH2,管脚呈黄色
  3. 再在TIM3 Mode and Configuration 找到Channel2 选择 PWM Generation CH2,管脚呈绿色,
    至此已经完成重映射,然后自主配置PWM。

PWM配置说明

sConfigOC.OCMode PWM 模式
sConfigOC.Pulse 比较值 写CCRX
sConfigOC.OCPolarity 比较输出极性(PB5小于CCRX输出电平)
sConfigOC.OCFastMode 输出比较快速使能和失能

举例说明

在这里插入图片描述
1.PWM的周期,周期越大,LED频闪越明显,
2.比较值 用于设置PWM占空比,由于我的LED低电平有效,所以CH Polarity设置LOW ,这个数值越大,亮度越高。

简单实现一个呼吸灯

动态设置PWM子函数:

void pwm_setvalue(uint16_t value)
{
TIM_OC_InitTypeDef sConfigOC;

sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = value;
sConfigOC.OCPolarity = TIM_OCPOLARITY_LOW;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_2);
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_2);   

}

主函数:

#define BLN 200
注:BLN等于200,是因为定时器中counter period设置200
while (1)
{
for(uint16_t i=0; i<BLN; i++){
pwm_setvalue(i);
HAL_Delay(10);
}
for(uint16_t i=BLN; i>0; i–){
pwm_setvalue(i);
HAL_Delay(10);
}
}

最后

以上就是爱笑书本最近收集整理的关于STM32 PWM的全部内容,更多相关STM32内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(126)

评论列表共有 0 条评论

立即
投稿
返回
顶部