呼吸灯的实现,主要是利用开个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);
- }
- }
-
- }
复制代码
|