呼吸燈的實現,主要是利用開個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);
}
}
}