一个有趣实用的程序,通过简单延时,程序模拟PWM波实现LED呼吸闪烁。
这是一个在PB5引脚上的LED灯,程序正确可执行,直接修改可移植。分享一些有趣的实验小程序.....
单片机源程序如下:
- ///////////////////////////////////////////////////////////////////////////////////
- // *名称: 呼吸灯 - (LED灯通用) //
- // *详情: 通过程序模拟PWM波实现LED灯的渐变过程。 //
- // 该例程是作用在PB5口上的LED显示,移植其他程序在led.c中修改, //
- // 呼吸时长可在主程序中修改。 //
- // *作者: WJin //
- // *固件库: V3.5.0 //
- // //
- ///////////////////////////////////////////////////////////////////////////////////
- #include "stm32f10x.h"
- #include "led.h"
-
- void delay(uint32_t counter)
- {
- while (counter --);
- }
- int main (void)
- {
- int i, a, b;
- LEDBX_BREATHE_Init();
- a= 5600;
- b = 5200; //修改数值来调整呼吸时长
- while(1)
- {
- for (i = 0; i < a; i ++)
- {
- GPIO_ResetBits(GPIOB, GPIO_Pin_5);
- delay(a - i);
- GPIO_SetBits(GPIOB, GPIO_Pin_5);
- delay(i);
- }
-
- for (i = 0; i < b; i++)
- {
- GPIO_ResetBits(GPIOB, GPIO_Pin_5);
- delay(i);
- GPIO_SetBits(GPIOB, GPIO_Pin_5);
- delay(b - i);
- }
- delay(100);
- }
- }
复制代码
所有资料51hei提供下载:
呼吸灯.rar
(285.69 KB, 下载次数: 72)
|