芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

飞芯科技-芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

HK32单片机按键扫描代码

分高低电平两种


  1. void Keys_Scan_Periodic_Callback(void)
  2. {
  3.   static uint32_t key1_cnt = 0;
  4.   static uint32_t key2_cnt = 0;
  5.   static uint32_t key3_cnt = 0;
  6.   static uint32_t key4_cnt = 0;
  7.   
  8.   if((GPIOC->IDR & GPIO_Pin_3) ) //高电平
  9.   {
  10.     key1_cnt ++;
  11.    
  12.     if(T_50ms == key1_cnt)
  13.     {
  14.       key1_flag = SET;
  15.     }
  16.    
  17.     if(key1_cnt > 0x0FFFFFFF)
  18.     {
  19.       key1_cnt = 0x0FFFFFFF;
  20.     }
  21.   }
  22.   else
  23.   {
  24.     key1_cnt = 0;
  25.   }
  26.   
  27.   if( !(GPIOC->IDR & GPIO_Pin_4) )//低电平
  28.   {
  29.     key2_cnt ++;
  30.    
  31.     if(T_50ms == key2_cnt)
  32.     {
  33.       key2_flag = SET;
  34.     }
  35.    
  36.     if(key2_cnt > 0x0FFFFFFF)
  37.     {
  38.       key2_cnt = 0x0FFFFFFF;
  39.     }
  40.   }
  41.   else
  42.   {
  43.     key2_cnt = 0;
  44.   }
  45.   
  46.   if( !(GPIOC->IDR & GPIO_Pin_5) )
  47.   {
  48.     key3_cnt ++;
  49.    
  50.     if(T_50ms == key3_cnt)
  51.     {
  52.       key3_flag = SET;
  53.     }
  54.    
  55.     if(key3_cnt > 0x0FFFFFFF)
  56.     {
  57.       key3_cnt = 0x0FFFFFFF;
  58.     }
  59.   }
  60.   else
  61.   {
  62.     key3_cnt = 0;
  63.   }
  64.   
  65.   if( !(GPIOC->IDR & GPIO_Pin_6) )
  66.   {
  67.     key4_cnt ++;
  68.    
  69.     if(T_50ms == key4_cnt)
  70.     {
  71.       key4_flag = SET;
  72.     }
  73.    
  74.     if(key4_cnt > 0x0FFFFFFF)
  75.     {
  76.       key4_cnt = 0x0FFFFFFF;
  77.     }
  78.   }
  79.   else
  80.   {
  81.     key4_cnt = 0;
  82.   }
  83. }

  84. void ADC_Scan_Periodic_Callback(void)
  85. {
  86.   
  87.         static uint32_t adc_cnt = 0;

  88.   if(ADC1->DR < ADC_Threshold_Value)
  89.   {
  90.     adc_cnt ++;
  91.    
  92.     if(T_100ms == adc_cnt)
  93.     {
  94.       acd_power_down_flag = SET;
  95.     }
  96.    
  97.     if(adc_cnt > 0x0FFFFFFF)
  98.     {
  99.       adc_cnt = 0x0FFFFFFF;
  100.     }
  101.   }
  102.   else
  103.   {
  104.     adc_cnt = 0;
  105.   }
  106. }



联系方式

地址:石家庄市新华区民族路77号华强广场D座2009
电话:0311-88816616/87087811
手机:13315190088
传真:0311-67901001
联系人:张工
网址:www.feixindz.com
邮箱:feixindz@163.com
微信:xinpianjiemi
QQ:527263666/568069805

在线客服
热线电话

企业微信