STM32cubeIDE学习汇总(四)----利用PWM控制LED实现呼吸灯

什么是PWM
​ 脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。 ​

PWM工作原理
SMT32F1系列共有8个定时器:

高级定时器(TIM1、TIM8);通用定时器(TIM2、TIM3、TIM4、TIM5);基本定时器(TIM6、TIM7)。

SMT32F4系列共有15个定时器:

高级定时器(TIM1、TIM8);通用定时器(TIM2、TIM3、TIM4、TIM5、TIM9~TIM14);基本定时器(TIM6、TIM7)。

STM32的每个通用定时器都有独立的4个通道可以用来作为:输入捕获、输出比较、PWM输出、单脉冲模式输出等。

STM32的定时器除了TIM6和TIM7(基本定时器)之外,其他的定时器都可以产生PWM输出。其中,高级定时器TIM1、TIM8可以同时产生7路PWM输出

原理讲解:

下图为向上计数模式:


在PWM输出模式下,除了CNT(计数器当前值)、ARR(自动重装载值)之外,还多了一个值CCRx(捕获/比较寄存器值)。
当CNT小于CCRx时,TIMx_CHx通道输出低电平;
当CNT等于或大于CCRx时,TIMx_CHx通道输出高电平。
​PWM的一个周期

    定时器从0开始向上计数
    当0-t1段,定时器计数器TIMx_CNT值小于CCRx值,输出低电平
    t1-t2段,定时器计数器TIMx_CNT值大于CCRx值,输出高电平
    当TIMx_CNT值达到ARR时,定时器溢出,重新向上计数...循环此过程
    至此一个PWM周期完成
总结:

每个定时器有四个通道,每一个通道都有一个捕获比较寄存器, 

将寄存器值和计数器值比较,通过比较结果输出高低电平,便可以实现脉冲宽度调制模式(PWM信号)

TIMx_ARR寄存器确定PWM频率,

TIMx_CCRx寄存器确定占空比

详解:
若配置脉冲计数器TIMx_CNT为向上计数,而重载寄存器TIMx_ARR配置为N,即TIMx_CNT的当前计数值数值X在TIMxCLK时钟源的驱动下不断累加,当TIMx_CNT的数值X大于N时,会重置TIMx_

  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
STM32CubeIDE使用 RT-Thread,可以按照以下步骤进行: 1. 首先,你需要从 RT-Thread 官网下载 STM32CubeIDE 的插件。插件包含了 RT-Thread 的配置文件和驱动代码,可以让你在 STM32CubeIDE 中直接使用 RT-Thread。 2. 下载并安装 STM32CubeIDE,确保你已经安装了合适版本的 STM32CubeMX。 3. 打开 STM32CubeIDE,在 "Help" 菜单下找到 "Eclipse Marketplace"。 4. 在 "Eclipse Marketplace" 中搜索 "RT-Thread" 插件,安装它。 5. 安装完成后,重新启动 STM32CubeIDE。 6. 创建一个新的 STM32 项目或者打开一个已有的项目。 7. 在 "Project Explorer" 视图中,右击项目名称,选择 "Properties"。 8. 在弹出的对话框中,选择 "C/C++ Build" -> "Settings" -> "Tool Settings"。 9. 在 "Tool Settings" 中,选择 "MCU GCC Compiler" -> "Preprocessor"。 10. 在 "Defined symbols (-D)" 中添加 RT-Thread 的宏定义,例如:`RT_USING_RTTHREAD`,这些宏定义可以在 RT-Thread 的配置文件中找到。 11. 在 "Tool Settings" 中,选择 "MCU GCC Compiler" -> "Include paths"。 12. 添加 RT-Thread 的头文件路径,这些路径可以在 RT-Thread 的配置文件中找到。 13. 在 "Project Explorer" 视图中,找到 RT-Thread 的配置文件,通常是 rtconfig.h 或者 rtconfig.py。 14. 根据你的需求,配置 RT-Thread 的内核选项、驱动选项和组件选项。 15. 编写你的应用程序代码,并且按照 RT-Thread 的编程规范来使用 RT-Thread 的 API。 16. 编译、烧录和运行你的应用程序。 以上是在 STM32CubeIDE使用 RT-Thread 的基本步骤。根据你的具体需求,可能还需要进行一些额外的配置和修改。记得参考 RT-Thread 官方文档和示例代码来帮助你进行开发。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

辽G.默语

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

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

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

打赏作者

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

抵扣说明:

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

余额充值