呼吸灯的实现,主要是利用开个Led灯的时间不同,利用人眼睛的视觉残留效果以达到呼吸灯的效果
#include "stm32f10x.h"
void delay_us(u32 time) // 延时函数
{
SysTick->LOAD = 72 * time;
SysTick->VAL = 0x00;
SysTick->CTRL = 0x00000005; //打开时钟源
while( !(SysTick->CTRL & 0x00010000));
SysTick->CTRL = 0x00000004; //关闭时钟源
}
void LED_Init()
{
GPIO_InitTypeDef gpio;
gpio.GPIO_Pin = GPIO_Pin_1;
gpio.GPIO_Mode = GPIO_Mode_Out_PP;
gpio.GPIO_Speed = GPIO_Speed_50MHz;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
GPIO_Init(GPIOB,&gpio);
}
int main(void)
{
int i=1;
LED_Init();
int flag = 0;
while(1)
{
for(i=1 ;i<100;i++) //暗到明
{
GPIO_WriteBit(GPIOB,GPIO_Pin_1,(BitAction)(1));
delay_us(i*10);
GPIO_WriteBit(GPIOB,GPIO_Pin_1,(BitAction)(0));
delay_us(2000-i*10);
}
}
}