野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8897|回复: 2

第十三讲中按键点亮LED灯的松手操,如果去掉while语句,只用if..else为什么不能实现?

[复制链接]
发表于 2017-5-7 17:20:44 | 显示全部楼层 |阅读模式
C:\Users\Administrator.SKY-20170308OIO\Desktop
回复

使用道具 举报

 楼主| 发表于 2017-5-7 17:21:55 | 显示全部楼层
uint8_t Key_Scan(GPIO_TypeDef *GPIOx,uint16_t GPIO_Pin)
{
        #if 0
        if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin)==Key_ON)
        {
                //松手检测
                while(GPIO_ReadInputDataBit(GPIOx , GPIO_Pin)==Key_ON);
                return Key_ON;
        }
        else
                return Key_OFF;
        #elif 1
        if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin)==Key_ON)
          {
                return Key_ON;
          }
        else
          {
                return Key_OFF;
    }
        #endif
回复 支持 反对

使用道具 举报

发表于 2017-5-7 20:06:31 | 显示全部楼层
主函数
如果没有松手检测,程序就不会在此处等待,就会不断检测到按键按下,LED就会不断转换,toggle,LED亮灭就会变得无序。
QQ截图20170507200234.png
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 18:31 , Processed in 0.072971 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表