微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 写了一个 32矩阵按键扫描的程序 推测是读寄存器 IDR 有问题 大家帮忙看一下 感谢

写了一个 32矩阵按键扫描的程序 推测是读寄存器 IDR 有问题 大家帮忙看一下 感谢

时间:10-02 整理:3721RD 点击:
这是我某一行的扫描代码
GPIOB->ODR=((GPIOB->ODR&0xfff0) | 0x0020);//设置对应的行IO口为高电平
        switch(GPIOB->IDR&0X03C0)//检测四列对应IO口的高低电平
        {
                case 0X0040:KeyVal=12;break;
                case 0x0080:KeyVal=13;break;
                case 0x0100:KeyVal=14;break;
                case 0x0200:KeyVal=15;break;
    default:return 0;
               
               
        }
int main(void)
{       
   u8 keycode=0;
        KEY_Init();  
  uart_init(115200);         
        printf(" start");
         while(1)
         {
         keycode=KEY_Scan();
                 if(keycode)
                 {
                 printf("%d\r\n",keycode);
      keycode=0;
                 }

}
//                 
}
我用的串口显示按键值   ,但是按键不按下去  ,扫描程序就会进入SWITCH语句里。应该是扫面那块出了问题  ,但是不知道是什么问题。求解   。

路过,,,,,,,,

首先知道查问题的方法,其次利用好手里的工具。
MDK+JLINK 就可以debug绝大多数的问题了。

具体可百度颖展ic芯片进官网查询

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top