标题: 独立按键扫描,测试列下面的语句没看懂,求大神解释。 [打印本页]

作者: 谢幕芳华    时间: 2016-7-22 16:55
标题: 独立按键扫描,测试列下面的语句没看懂,求大神解释。
void KeyScan(void)
{
        char a = 0;
        GPIO_KEY=0x0f;
        if(GPIO_KEY!=0x0f)//读取按键是否按下
        {
                Delay10ms(1);//延时10ms进行消抖
                if(GPIO_KEY!=0x0f)//再次检测键盘是否按下
                {
                       
                        //测试列
                        GPIO_KEY=0X0F;/*为什么这里还要按键I/O口赋值00001111?这样的话switch根本不会执行*/
                        switch(GPIO_KEY)
                        {
                                case(0X07):        KeyValue=0;break;
                                case(0X0b):        KeyValue=4;break;
                                case(0X0d): KeyValue=8;break;
                                case(0X0e):        KeyValue=12;break;
               



作者: 王朗的诱惑    时间: 2016-7-23 07:46
和上面的那句一样吧,读I/O之前给I/O口赋值为1。I/O口实际的电平要看按键,就算I/O口赋值为1也不会把按下去的按键对应的电平拉到1的。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1