STM32_3.5Lib延时实现led呼吸灯效果

int main (void)
{//主程序
    RCC_Configuration(); //时钟设置
    LED_Init();
    
    u8 MENU;
    u16 t,i;
    MENU = 0;
    t = 1;
   while(1)
        { 
            if(MENU == 0)
            { //for循环保持此刻led的状态10次,视觉停留效果
                for(i = 0;i<10;i++)//for(初始化语句;判断条件语句;控制条件语句){循环体语句}
                {
                    GPIO_WriteBit(GPIOA, LED1, (BitAction)(0));
                    GPIO_WriteBit(GPIOD, LED2, (BitAction)(0));
                    delay_us(t); //延时1秒
                    GPIO_WriteBit(GPIOD, LED2, (BitAction)(1));
                    GPIO_WriteBit(GPIOA, LED1, (BitAction)(1));
                    delay_us(501-t); //延时1秒
                    
                }
                t++;//t是亮暗的分辨率
                if(t == 500)
                {
                    MENU = 1;
                }
            }
            if(MENU == 1)
            {
                for(i = 0;i<10;i++)
                {
                    GPIO_WriteBit(GPIOA, LED1, (BitAction)(0));
                    GPIO_WriteBit(GPIOD, LED2, (BitAction)(0));
                    delay_us(t); //延时1秒
                    GPIO_WriteBit(GPIOD, LED2, (BitAction)(1));
                    GPIO_WriteBit(GPIOA, LED1, (BitAction)(1));
                    delay_us(501-t); //延时1秒
                }
                t--;
                if(t == 1)
                {
                    MENU = 0;
                }
            }

    } 
 }
最后修改:2020 年 03 月 21 日
如果觉得我的文章对你有用,请随意赞赏