按键输入实验

该代码段展示了如何使用GPIO控制LED灯和蜂鸣器,并通过按键实现不同功能。KEY_UP用于切换GPIOC0~7的灯亮灭,KEY2则在灯亮灭的同时控制蜂鸣器的开关。KEY1用于实现流水灯和闪烁效果,而KEY0则单独控制LED0的翻转。程序中使用了循环和条件判断来响应按键输入,实现了硬件交互的基本功能。
摘要由CSDN通过智能技术生成

  

A. KEY_UP  按一次GPIOC0~7全部灯亮,再按一次GPIOC0~7全部灯灭;

B. KEY2    按一次GPIOC0~7全部灯亮同时蜂鸣器鸣叫,再按一次GPIOC0~7全部灯灭同时蜂鸣器停止鸣叫;

C. KEY1    按一次GPIOC实现流水灯控制,再按一次GPIOC全部灯闪烁3次(提示:定义自动变量与静态变量);

D.KYE0 根据所学知识,自己设定实验内容。

  u8 i=0;
//     u8 j=0;
//    while(1)
//    {
//        
//        key=KEY_Scan(0);//µÃµ½¼üÖµ
//        switch(key)
//        {        
//        /***************KEYʵÑéA******************/             
//            case WKUP_PRES://KEY_UP                
//                 if(i==0){
//                      LED0=LED1=LED2=LED3=LED4=LED5=LED6=LED7=0;
//                     i=1;
//                 }else{
//                      LED0=LED1=LED2=LED3=LED4=LED5=LED6=LED7=1;
//                   i=0;
//                 }
//                 break;
//                /***************KEYʵÑéB******************/         
//            case KEY2_PRES://¿ØÖÆBEEP
//                 if(i==0){
//                      LED0=LED1=LED2=LED3=LED4=LED5=LED6=LED7=0; BEEP=0;
//                     i=1;
//                 }else{
//                      LED0=LED1=LED2=LED3=LED4=LED5=LED6=LED7=1;BEEP=1;
//                 i=0;
//                 }break;
//            /***************KEYʵÑéC******************/         
//                case KEY1_PRES://KEY1
//                {if(i==0){                     
//                    u8 LED=0x00;                
//             for( j=0;j<8;j++)
//                        {  
//                            LED++;    //1: 0000 0001;    2:0000 0011;     3:0000 0111; 8:1111 1111
//                            HAL_GPIO_WritePin(GPIOC,LED,GPIO_PIN_RESET);
//                            delay_ms(1000);
//                            LED<<=1;//1: 0000 0010;    2:0000 0110;   3:0000 1110;8:1111 1110
//                            
//                        }i=1;
//                 }else{
//                      for(j=0;j<5;j++){
//                         LED0=LED1=LED2=LED3=LED4=LED5=LED6=LED7=0;
//                         delay_ms(1000);
//                         LED0=LED1=LED2=LED3=LED4=LED5=LED6=LED7=1;
//                         delay_ms(1000);
//                } i=0;  }
//            }
//                 break;                
//                case KEY0_PRES://KEY0
//                 LED0=!LED0;
//                 break;
//            default:
//                 delay_ms(10);    
//        }     
//    }
}

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值