打印
[应用相关]

STM32配置PWM注意事项

[复制链接]
122|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主


想要更加精确控制PWM,并更加满足应用层的需求,就需要自己一步一步深入了解原理。下面,总结几点常见的问题。

1、引脚映射


如果你使用的引脚需要映射,就需要配置对应的参数。

比如STM32F1使用PB11(需要查看数据手册):



需要增加对应的“映射”代码:

//复用功能
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

//定时器(PWM)引脚映射
GPIO_PinRemapConfig(GPIO_FullRemap_TIM2, ENABLE);




使用特权

评论回复
沙发
小夏天的大西瓜|  楼主 | 2023-12-23 15:46 | 只看该作者
2、频率和占空比精度

如果使用32位定时器的话,频率范围更宽、精度也可以达到更高。比如,频率0.01Hz、占空比0.01%等。
如果是16位的话,其中的参数都不能超过16位(65535):

#define PWM_COUNTER_CLOCK         1000000

#define PWM_PRESCALER_VALUE       (SystemCoreClock/PWM_COUNTER_CLOCK - 1)

tim_period = PWM_COUNTER_CLOCK/Frequency - 1;                      //计算出计数周期(决定输出的频率)
tim_pulse  = (tim_period + 1)*Dutycycle / 100;                     //计算出脉宽值(决定PWM占空比)

具体可根据自己情况进行配置,比如PWM(定时器)计数时钟、分频值等。

实际应用代码,建议增加各个参数的判断,以防越界(这里为了方便理解,就写的比较简单)。


使用特权

评论回复
板凳
小夏天的大西瓜|  楼主 | 2023-12-23 15:47 | 只看该作者
3、更多

STM32都有硬件PWM输出功能,但不同的系列,其配置可能略有一些差异,简单参考官方例程以及手册。

现在大部分单片机都自带有硬件PWM输出功能,硬件的好处就是不用CPU干预。如果没有,可以尝试上面说的定时器中断的方式。


使用特权

评论回复
地板
中国龙芯CDX| | 2023-12-28 09:34 | 只看该作者
频率和占空比精度这个确实是影响PWM的一个至关重要的因素

使用特权

评论回复
5
LOVEEVER| | 2024-1-25 12:33 | 只看该作者
硬件PWM输出对于目前灯光控制很方便

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

203

主题

1711

帖子

2

粉丝