请问一下·,这个矩阵键盘的扫描的函数是否正确

问题遇到的现象和发生背景

按键盘没反应

问题相关代码,请勿粘贴截图
u8 keyboard_scan(void)
{
u8 key, temp1, temp2;
u16 i,j;
u8 a[4][4]={'1','2','3','+',
            '4','5','6','-',
            '7','8','9','*',
            '%','0','.','/'} ;
Keyboard=0xff;//行为1,列为1
if(Keyboard!=0xff)
   {
       delay_10us(100);
    if(Keyboard!=0xff)
        {
      key=Keyboard;
      temp1=key>>4;
      temp2=key-(temp1<<4);
      switch(temp1)    //行扫描
      {
          case 0x07 : i=0; break;
          case 0x0B : i=1; break;
        case 0x0D : i=2; break;
        case 0x0E : i=3; break;
      }
     switch(temp2)    //列扫描
      {
          case 0x07 : j=0; break;
          case 0x0B : j=1; break;
        case 0x0D : j=2; break;
        case 0x0E : j=3; break;
      }
     return a[i][j];
     }
 
   
   }
}

运行结果及报错内容

无报错,但无反应

我的解答思路和尝试过的方法
我想要达到的结果

按下矩阵键盘就会返回相应的字符

没电路图,代码也不全。只是猜测。
代码中没有键盘扫描的过程的代码。应该有个循环,行循环输出7,b,d,e判断列是否与行相同。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632