我是靠谱客的博主 爱笑书本,最近开发中收集的这篇文章主要介绍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 PWM所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部