admin 管理员组

文章数量: 1086866

按键呼吸灯(循环)

1.定义按键中断设置pin脚13为按键,设置f为标志位,按键一旦按下,f为1,进入呼吸灯算法

    if(GPIO_Pin&GPIO_PIN_13 )
    {
        if(f==0)
            f=1;
        else 
            f=0;
    }

2.呼吸灯就是将一个灯点亮延时一定时间后在慢慢熄灭delay(20000-i)即为慢慢熄灭的过程,剩下的就是循环,

for(int J=0; J<8; J++)
    {
                if(f==1)
        {
                for(int i=0; i<=20000; i+=10)
        {
        
            HAL_GPIO_WritePin (GPIOE ,LED[J] ,GPIO_PIN_RESET );
            delay (i);
            HAL_GPIO_WritePin (GPIOE ,LED[J] ,GPIO_PIN_SET );
            delay (20000-i);        
        }
            for(int i=20000; i>=10; i-=10)
        {
            HAL_GPIO_WritePin (GPIOE ,LED[J] ,GPIO_PIN_RESET );
            delay (i);
            HAL_GPIO_WritePin (GPIOE ,LED[J] ,GPIO_PIN_SET );
            delay (20000-i);
            }
        }
        else 
        HAL_GPIO_WritePin(GPIOE ,LED[J] ,GPIO_PIN_SET);
    }

3.定义一个数组,让呼吸灯可以在不同位置进行点灯。

uint16_t LED[]={LED1_Pin,LED2_Pin,LED3_Pin,LED4_Pin,LED5_Pin,LED6_Pin,LED7_Pin,LED8_Pin};

4.按键需要消抖

if(按键按下)

delay

if(按键再次按下)

按键呼吸灯(循环)0000-嵌入式文档类资源-CSDN文库

本文标签: 按键呼吸灯(循环)