OpenEdv-开源电子网

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

原子哥帮看看这个怎么不能用呢????

[复制链接]

33

主题

118

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
294
金钱
294
注册时间
2015-2-23
在线时间
26 小时
发表于 2015-3-1 22:52:54 | 显示全部楼层 |阅读模式
5金钱
u8 Matrixkey(void)  

  u8 j=20;
  u16 temp1,temp;
 
RCC->APB2ENR|=1<<2;     //????PORTA?±??
  JTAG_Set(SWD_ENABLE); //??±?JTAG,????SWD
 
  JTAG_Set(JTAG_SWD_DISABLE)  ;
//----------------------------------------------------------- 
  GPIOA->CRL&=0X0000FFF0;              //????
  GPIOA->CRL|=0X88880003;             //PB0~PB3 ???ì????,PB4~PB7???????­  
  
  if((GPIOA->IDR & 0X00f0)==0x00f0)  //????°??ü
      return j;
   else
  {  
      temp=(GPIOA->IDR & 0x00f0);
        delay_ms(10);                 //°??ü????
     if((GPIOA->IDR & 0X00f0)==0x00f0)  //????°??ü
      return j;
  else
   {
     temp1=(GPIOA->IDR & 0x00f0);
   while(temp==temp1){};
         switch(temp1)
        {
          case 0x00ee:j=0;break;    
          case 0x00de:j=1;break;  
          case 0x00be:j=2;break;    
          case 0x007e:j=3;break;    
          default:break;
    }
  }
   }
//----------------------------------------------  
  GPIOA->CRL&=0XFFFFFF0F;              //
  GPIOA->CRL|=0X88880030;             //    
//------------------------------------------------ 
    if((GPIOA->IDR & 0X00f0)==0x00f0)  //????°??ü
      return j;
   else
  {  
      temp=(GPIOA->IDR & 0x00f0);
        delay_ms(10);                 //°??ü????
     if((GPIOA->IDR & 0X00f0)==0x00f0)  //????°??ü
      return j;
  else
   {
     temp1=(GPIOA->IDR & 0x00f0);
   while(temp==temp1){};
         switch(temp1)
        {
          case 0x00ed:j=4;break;    
          case 0x00dd:j=5;break;   
          case 0x00bd:j=6;break;  
          case 0x007d:j=7;break;    
          default:break;
    }
  }
   }     
//--------------------------------------------------------------   
  GPIOA->CRL&=0XFFFFF0FF;              //
  GPIOA->CRL|=0X88880300;             //PB0~PB3 ???ì????    
//------------------------------------------------ 
    if((GPIOA->IDR & 0X00f0)==0x00f0)  //????°??ü
      return j;
   else
  {  
      temp=(GPIOA->IDR & 0x00f0);
        delay_ms(10);                 //°??ü????
     if((GPIOA->IDR & 0X00f0)==0x00f0)  //????°??ü
      return j;
  else
   {
     temp1=(GPIOA->IDR & 0x00f0);
   while(temp==temp1){};
         switch(temp1)
        {
          case 0x00eb:j=8;break;    
          case 0x00db:j=9;break;   
          case 0x00bb:j=10;break;  
          case 0x007b:j=11;break;    
          default:break;
    }
  }
   }     
//--------------------------------------------------------------   
  GPIOA->CRL&=0XFFFF0FFF;              //
  GPIOA->CRL|=0X88883000;             //PB0~PB3 ???ì????    
//------------------------------------------------
    if((GPIOA->IDR & 0X00f0)==0x00f0)  //????°??ü
      return j;
   else
  {  
      temp=(GPIOA->IDR & 0x00f0);
        delay_ms(10);                 //°??ü????
     if((GPIOA->IDR & 0X00f0)==0x00f0)  //????°??ü
      return j;
  else
   {
     temp1=(GPIOA->IDR & 0x00f0);
   while(temp==temp1){};
         switch(temp1)
        {
          case 0x00e7:j=15;break;    
          case 0x00d7:j=14;break;   
          case 0x00b7:j=13;break;  
          case 0x0077:j=12;break;    
          default:break;
    }
  }
   }     
}
新手学STM
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-24 06:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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