OpenEdv-开源电子网

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

请问各位大大按键的问题

[复制链接]

10

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2013-11-13
在线时间
2 小时
发表于 2013-12-17 10:35:47 | 显示全部楼层 |阅读模式
目前按键多加两个按键同时按下去会点亮LED灯的功能,compiler无误但式烧录至硬体两按键同时按下去毫无反应

单按一个键却可动作的,请问各位大大是哪边需要做更改?

如果原本单一按键功能保留,和再增加两个按键同时按下去的功能,两项功能都不会干涉,程序该如何修改?

================main.c================
int main(void)
{
  KEY_Init();
  LED_Init();
  
ROW 0_L;ROW 1_L;ROW 2_L;ROW 3_L;ROW 4_L;
 while(1)
   switch(KEY_Scan())
   {
case 0x01:  
{
  LED1=!LED1;
                 }
  break;
               case 0x02:  
{
  LED0=!LED0;
  LED1=!LED1;
  LED2=!LED2;
}
  break;
                  .
                  .
                  .
                  .

===============key.c==============
void KEY_Init(void) 

{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB,ENABLE);

GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; 
  GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 
  GPIO_Init(GPIOB, &GPIO_InitStructure);
}
u8 KEY_Scan(void)

{  
ROW 0_L; ROW 1_H; ROW 2_H; ROW 3_H; ROW 4_H; 
        if(KEY0) {debounce();return 0x01;}
   if(~(~(KEY0)&&(~(KEY1||KEY2||KEY3||KEY4)))) {debounce();return 0x01;}
ROW0_H;ROW1_L;ROW2_H;ROW3_H;ROW4_H;
if(!KEY0) {debounce();return 0x02;}
   if(~(~(KEY0)&&(~(KEY1||KEY2||KEY3||KEY4)))) {debounce();return 0x02;}
          .
                  .
                  .
                  .
return 0;
}

void debounce(void)
{

while(!(KEY0&KEY1&KEY2&KEY3&KEY4));
delay_ms(10);
}





                   












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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165538
金钱
165538
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-12-17 20:32:20 | 显示全部楼层
回复【楼主位】richard.lin:
---------------------------------
你这是4*4的键盘?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2013-11-13
在线时间
2 小时
 楼主| 发表于 2013-12-18 18:25:49 | 显示全部楼层
这是5*5的键盘,因为下面大致类似,所以只保留上面几行
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-15 16:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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