当前位置:   article > 正文

stm32使用cubemx配置pwm呼吸灯_cubemx呼吸灯实验心得体会

cubemx呼吸灯实验心得体会

一、前言

脉冲宽度调制(PWM) 是一种数字信号,最常用于控制电路。该信号在预定义的时间和速度中设置为高(5v或3.3v)和低(0v)。通常,我们将PWM的高电平称为1,低电平为0。

二.注意事项

  1. 硬件连接:确保正确连接LED到STM32的PWM输出引脚,适当配置电流限制电阻和电源,以保证硬件安全和正常工作。

  2. CubeMX配置:使用CubeMX创建项目并配置硬件引脚、定时器以及PWM通道,以便产生呼吸灯效果所需的PWM信号。

  3. 代码编写:生成代码并在主循环中编写控制PWM占空比的代码,以实现呼吸效果。可以使用HAL库函数或直接寄存器操作来控制PWM。

  4. 呼吸效果算法:选择合适的算法来实现呼吸效果,可以是线性或非线性的,如指数函数。控制占空比的逐渐改变以实现明亮度的变化。

  5. 调试和优化:监测PWM占空比的变化,确保其符合预期,使用调试工具来辅助。优化代码以减少功耗,确保频率和占空比合适。

  6. 安全性考虑:确保采取适当的安全措施,防止损坏LED,包括电流限制电阻。考虑温度问题,确保硬件不会过热。

三、使用步骤

直接开始
我使用的是stm32f103rct6这块板子,我们直接开始
首先打开cubemx
创建工程,根据实验需求按以下步骤进行设置
数据根据自己需求调整

到这里我们开始对工程的基本配置
首先开启晶振。
然后开始配置时钟树。
接下来开始pwm。
开启定时器二频道一的pwm。
接下来我们基本配置完成了。
下面开始保存工程,打开工程了

完成创建过后
打开工程
我们需要在这里添加如下代码

  • List item
uint16_t pwmVal = 0;  //占空比大小(CCRx的大小)
    uint8_t direction = 1;  //呼吸灯方向: 1. 越来越亮   2. 越来越暗
  • 1
  • 2

在这里添如下

HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);

这里添加如下

HAL_Delay(3);  //控制呼吸灯呼吸速率
                   //控制占空比大小,即修改CCRx的大小
        if(direction){
            pwmVal++;
        }else{
            pwmVal--;
        }
        //设置了ARR为499,因此每计数500为一个周期
        if(pwmVal > 500){ 
            direction = 0;  //改变呼吸灯方向
        }else if(pwmVal == 0){
            direction = 1;  //改变呼吸灯方向
        }
        //修改定时器4通道三的PWM的占空比
        __HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_1,pwmVal)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

到这里就配置好了

我们就完成了一个pwm呼吸灯的配置了
采用的定时器二频道二

四、pwm理解

io口如何产生一个pwm,无非就是做一个高低电平周期性的变化,这种思想很重要,确定频率就可以确定周期(T=1/f)也就是在一个周期内产生pwm的时间可以确定下来了,如何改变占空比确定了时间,高电平的时间不就是想要的占空比么,比如要产生一个频率1khz,占空比为70%的pwm,根据频率我们知道了周期为1ms,产生一个占空比为70%的不就是0.7ms的时间给高电平么,我们用定时器中断的方式,使0.1ms产生一次中断,计数中断次数,中断处理函数前七次中断都给高电平就ok了

五.结果展示

呼吸灯如下:
在这里插入图片描述
设置引脚观察波形
标为bit显示,用绿色的线表示,得到的波形结果如下图所示:
在这里插入图片描述

六.总结

学会使用STM32微控制器和CubeMX配置PWM呼吸灯有以下用途和益处:

  1. 嵌入式系统开发:这个实验教授了基本的嵌入式系统开发技能,包括硬件连接、外设配置、以及编写嵌入式软件。

  2. LED控制:掌握PWM控制LED亮度的方法,这是许多嵌入式应用中的基本要求,如照明控制、显示屏背光控制等。

  3. 效果演示:PWM呼吸灯是一种常见的视觉效果,可以用于演示、展示或艺术装置,使产品更具吸引力。

  4. 电源管理:了解如何使用PWM控制LED可以有助于优化电源管理,减少功耗,延长电池寿命。

  5. 学习嵌入式工具:通过使用CubeMX,您学会了使用流行的嵌入式开发工具,这对日后的项目开发非常有帮助。

  6. 扩展应用:这个实验的基础可以应用于更复杂的项目,如温控系统、无人机控制、机器人等,这些项目需要精确的定时和控制。

  7. 培养编程技能:学习如何编写嵌入式代码可以提高编程技能,并为未来的职业发展打下坚实基础。

总之,学会配置PWM呼吸灯不仅是一个有趣的实验,还是进入嵌入式开发领域的入门门槛,有着广泛的应用前景。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/75967
推荐阅读
相关标签
  

闽ICP备14008679号