OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 1841|回复: 3

求助,以下程序时按键扫描程序,想通过这个按键实现一个6位密码程序,与我所设定的密码比较,一样,蜂鸣器响,不一样,闪灯。

[复制链接]

1

主题

2

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2018-1-25
在线时间
3 小时
发表于 2018-1-26 16:58:11 | 显示全部楼层 |阅读模式
10金钱
u8 KeyMat_Scan(void)
{
        u8 KeyVal;         
        u8 KeyVall;
        int i;
        int b[6];
        RCC->APB2ENR|=1<<6;      
    GPIOE->CRL&=0X00000000;   
    GPIOE->ODR&=0X00000000;   
    GPIOE->CRL|=0X33338888;   
    GPIOE->ODR|=0XF0<<0;        
        if((GPIOE->IDR&0XFF)!=0XF0)
    {
                delay_ms(10);         
       
        if((GPIOE->IDR&0XFF)!=0XF0)  
                {
                        switch(GPIOE->IDR&0XFF)   
                    {
                                        case(0XF8):        {KeyVal=1; KeyVall='*';} break;   
                                        case(0XF4):        {KeyVal=2; KeyVall=0;} break;  
                                        case(0XF2): {KeyVal=3; KeyVall='#';} break;   

                    }
                  
                       
                         GPIOE->CRL&=0X00000000;   
                 GPIOE->ODR&=0X00000000;   
                 GPIOE->CRL|=0X88883333;   
                 GPIOE->ODR|=0X0F<<0;      
                     delay_us(500);            
                                                    
                     switch(GPIOE->IDR&0XFF)
                                {                                       
                                        case(0X3F): KeyVal=KeyVal;break;//////////1
                                         case(0X2F):        KeyVal=KeyVal+3;break;///////////2
                                       case(0X6F): KeyVal=KeyVal+6;break;///////////3
                                        case(0XAF):        KeyVal=KeyVall;break;//////////////4

                                }
                }          
        }
               
        #if 0               
                while ((GPIOE->IDR&0XFF)!=0X0F);

        #endif
        return KeyVal;

}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2018-1-26 17:10:28 | 显示全部楼层
这种问题本身就是程序员自己应该想出来的.
这问题小问题都无法解决的话.不知道更加难更加复杂的问题如何得以解决.
不知道我说得对不对.
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2018-1-25
在线时间
3 小时
 楼主| 发表于 2018-1-26 17:16:35 | 显示全部楼层
操作系统 发表于 2018-1-26 17:10
这种问题本身就是程序员自己应该想出来的.
这问题小问题都无法解决的话.不知道更加难更加复杂的问题如何得 ...

是这样的!!但是我所能想到的办法都试了,不好用啊!这个时间又急!我又是个新手,,有的地方可能没想到吧,所以真的希望你能对这个程序给点建议。。。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-1-27 00:13:31 | 显示全部楼层
耐心的人 发表于 2018-1-26 17:16
是这样的!!但是我所能想到的办法都试了,不好用啊!这个时间又急!我又是个新手,,有的地方可能没想到 ...

慢慢练,慢慢编写,编写出来为止。
菜鸟就要多花时间,很正常的,搞个十天半月的,不要急
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 18:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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