打印
[STM32F1]

STM32CubeMX配置生成PWM

[复制链接]
314|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
LOVEEVER|  楼主 | 2023-12-16 16:37 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
STM32CubeMX配置生成代码:






配置注意事项

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



1、引脚映射



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



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






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

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

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


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(定时器)计数时钟、分频值等。



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



3、更多



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



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

使用特权

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

本版积分规则

310

主题

2239

帖子

4

粉丝