• 大小: 3.89MB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2023-09-10
  • 语言: 其他
  • 标签:

资源简介

使用STM32搭建的矩阵薄膜键盘,固件库版本,..C.H拉过去,就可以用了

资源截图

代码片段和文件信息

/************************************************************
正面朝上黑引脚为行,白引脚为列 
A、B 、C 、D  分别返回 10 11 12 13
*为 14
#为 15
0为 16
无按键按下返回0
*************************************************************/

#include “key.h“
#include “delay.h“
//矩阵键盘引脚初始化
void Key_init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOGENABLE);//使能PORTBPORTD,PORTG时钟
//GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable ENABLE);//关闭jtag,使能SWD,可以用SWD模式调试,引脚比较可能存在占用

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_14;                        //键盘输出
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  //IO口速度为50MHz
GPIO_Init(GPIOD&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2|GPIO_Pin_4|GPIO_Pin_6;  //键盘输出
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  //IO口速度为50MHz
GPIO_Init(GPIOG&GPIO_InitStructure);



GPIO_InitStructure.GPIO_Pin=GPIO_Pin_14;                       //键盘输入
    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
    GPIO_Init(GPIOB&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_10|GPIO_Pin_12; //键盘输入
    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
    GPIO_Init(GPIOD&GPIO_InitStructure);



}




//mode:0不支持连续按;1支持连续按;
u8 KEY_Scan(u8 mode)
{
static u8 key0_up=1;//按键按松开标志
static u8 key1_up=1;//按键按松开标志
static u8 key2_up=1;//按键按松开标志
static u8 key3_up=1;//按键按松开标志
static u8 key4_up=1;//按键按松开标志
static u8 key5_up=1;//按键按松开标志
static u8 key6_up=1;//按键按松开标志
static u8 key7_up=1;//按键按松开标志
static u8 key8_up=1;//按键按松开标志
static u8 key9_up=1;//按键按松开标志
static u8 keyA_up=1;//按键按松开标志
static u8 keyB_up=1;//按键按松开标志
static u8 keyC_up=1;//按键按松开标志
static u8 keyD_up=1;//按键按松开标志
static u8 keyX_up=1;//按键按松开标志
static u8 keyJ_up=1;//按键按松开标志

if(mode)
{
key0_up=1;
        key1_up=1;
    key2_up=1;
        key3_up=1;
        key4_up=1;
        key5_up=1;
        key6_up=1;
        key7_up=1;
        key8_up=1;
        key9_up=1;
        keyA_up=1;
        keyB_up=1;
        keyC_up=1;
        keyD_up=1;
        keyX_up=1;
        keyJ_up=1;
}

    //第一行
Hang_00_L;//把第一行输出低电平
Hang_01_H;
Hang_02_H;
Hang_03_H;
if(key1_up&&Lie_00_V==0)
{    
   delayMs(jpys); //延时20秒,软件消抖

   key1_up=0;
   if(Lie_00_V==0) //如果第一列是低电平,说明有键被按下,如果没有直接退出if语句
   {
  return 1;
   }
}else if(Lie_00_V==1)key1_up=1;
 
if(key2_up&&Lie_01_V==0)//如果第二列是低电平,
{    
   delayMs(jpys);//延时20秒,软件消抖
   key2_up=0;
   if(Lie_01_V==0)//如果第二列是低电平,说明有键被按下,如果没有直接退出if语句
   {
  return 2; 
   }
}else if(Lie_01_V==1)key2_up=1;
 
if(key3_up&&Lie_02_V==0)
{    
   delayMs(jpys);
   key3_up=0;
   if(Lie_02_V==0)
   {
  return 3;
   }
}else if(Lie_02_V==1)key3_up=1;
 
if(keyA_up&&Lie_03_V==0)//如果第四列是低电平
{    

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        399  2011-05-09 18:17  TopApex_4x4矩阵键盘\keilkill.bat

     文件       6575  2017-08-08 00:14  TopApex_4x4矩阵键盘\key.c

     文件        969  2017-08-08 00:20  TopApex_4x4矩阵键盘\key.h

     文件        514  2017-11-23 14:26  TopApex_4x4矩阵键盘\ReadMe.txt

     文件      17273  2010-06-07 10:25  TopApex_4x4矩阵键盘\控制类程序框架\Core\core_cm3.c

     文件      85714  2011-02-09 14:59  TopApex_4x4矩阵键盘\控制类程序框架\Core\core_cm3.h

     文件      15503  2017-01-03 16:38  TopApex_4x4矩阵键盘\控制类程序框架\Core\startup_stm32f10x_hd.s

     文件       2342  2017-03-23 08:08  TopApex_4x4矩阵键盘\控制类程序框架\Driver\adc.c

     文件       1204  2016-10-13 10:05  TopApex_4x4矩阵键盘\控制类程序框架\Driver\adc.h

     文件       2702  2017-05-03 14:29  TopApex_4x4矩阵键盘\控制类程序框架\Driver\delay.c

     文件       1877  2017-04-02 21:55  TopApex_4x4矩阵键盘\控制类程序框架\Driver\delay.h

     文件       2303  2017-04-05 00:12  TopApex_4x4矩阵键盘\控制类程序框架\Driver\gpio.c

     文件       3979  2017-04-05 00:12  TopApex_4x4矩阵键盘\控制类程序框架\Driver\gpio.h

     文件        375  2017-04-04 21:48  TopApex_4x4矩阵键盘\控制类程序框架\Driver\iic1.c

     文件          0  2017-04-04 21:34  TopApex_4x4矩阵键盘\控制类程序框架\Driver\iic1.h

     文件      12008  2017-07-15 08:36  TopApex_4x4矩阵键盘\控制类程序框架\Driver\iicSoft.c

     文件       7775  2017-07-15 08:36  TopApex_4x4矩阵键盘\控制类程序框架\Driver\iicSoft.h

     文件       1648  2017-05-12 19:57  TopApex_4x4矩阵键盘\控制类程序框架\Driver\iwdg.c

     文件       1353  2017-05-12 16:07  TopApex_4x4矩阵键盘\控制类程序框架\Driver\iwdg.h

     文件       6575  2017-08-08 00:14  TopApex_4x4矩阵键盘\控制类程序框架\Driver\key.c

     文件        969  2017-08-08 00:20  TopApex_4x4矩阵键盘\控制类程序框架\Driver\key.h

     文件       9437  2017-07-15 08:34  TopApex_4x4矩阵键盘\控制类程序框架\Driver\MPU9250.c

     文件       9712  2017-07-15 08:34  TopApex_4x4矩阵键盘\控制类程序框架\Driver\MPU9250.h

     文件       5379  2017-05-11 08:34  TopApex_4x4矩阵键盘\控制类程序框架\Driver\pid.c

     文件       2805  2017-05-11 16:12  TopApex_4x4矩阵键盘\控制类程序框架\Driver\pid.h

     文件      11663  2017-05-09 10:48  TopApex_4x4矩阵键盘\控制类程序框架\Driver\pwm.c

     文件       3259  2017-04-01 08:55  TopApex_4x4矩阵键盘\控制类程序框架\Driver\pwm.h

     文件      11077  2017-07-16 21:37  TopApex_4x4矩阵键盘\控制类程序框架\Driver\uart1.c

     文件       3072  2017-07-14 08:55  TopApex_4x4矩阵键盘\控制类程序框架\Driver\uart1.h

     文件       8982  2011-03-10 10:47  TopApex_4x4矩阵键盘\控制类程序框架\Libraries\inc\misc.h

............此处省略178个文件信息

评论

共有 条评论

相关资源