STM32单片机通过for实现呼吸灯效果,不使用内部PWM输出控制

📌目录

✨项目介绍

说明

项目介绍:通过不使用STM32单片机内部配置PWM输出,直接使用for控制LED亮度或者呼吸灯效果 ,注意我这边使用的是STM32F103 主频为 72MHz!!!

PWM解释

PWM 是脉冲宽度调制(Pulse Width Modulation)的缩写,是一种常用的调节模拟信号的技术。在数字电子中,PWM 通常用于模拟信号的发生和控制。

PWM 通过对信号的脉冲宽度进行调节来实现模拟信号的控制。具体来说,PWM 信号周期性地以固定频率发出脉冲,并且每个脉冲的宽度可以根据需要进行调节。这种调节方式使得 PWM 信号的占空比(脉冲宽度与周期的比值)可以被改变,从而产生不同的平均电压或电流输出。

在实际应用中,PWM 技术被广泛用于控制电机速度、调光LED灯、产生音频信号等领域。例如,通过改变PWM信号的占空比,可以实现对直流电机的转速控制;通过调节LED灯的PWM信号,可以实现对光亮度的调节。

总之,PWM 技术通过控制信号的脉冲宽度来实现模拟信号的控制,是数字电子中常用的一种调节技术。

🏙️实现效果图

预览图 

 示波器信号图

 信号采集图片

🌿项目

代码介绍

直接把这个函数复制进去即可使用,自己调节占空比,频率即可!!!

代码


//占空比调节0-100%,频率调节设置越大,频率就越小
void kaicheng(int time,int frequency) // 开关
{
  unsigned int shijian;
  unsigned int shijian1;
  unsigned int shijian2;
  unsigned char X = 0;
  while (1)
  {
    for (shijian = 0; shijian <= frequency; shijian++)
    {
      shijian2++;
      if (shijian2 >= ((time*10)+9))
      {
        if (X == 0)
          shijian1++;
        if (X == 1)
          shijian1--;

        shijian2 = 0;
      }

      if (shijian1 >= frequency)
      {
        X++;
        if (X > 1)
          X = 0;
      }

      if (shijian < shijian1)
      {
        LED = 0; //正常配置IO输出即可
      }
      else
        LED = 1;//正常配置IO输出即可
    }

  }

 
}
//   kaicheng(100,6000); //可以这样使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

顶呱呱的猫

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

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

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

打赏作者

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

抵扣说明:

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

余额充值