一、proteus设计

注:测试上4*4键盘直接接到控制器,读值出错,加驱动测试成功。

二、CubeMX设计

注:输入端的设置

三、KEIL程序设计

int KEY_SCAN(void)
{int KEY_Value= 0x00ff;int KEY_Read;HAL_GPIO_WritePin(GPIOE,KEY_X1_Pin|KEY_X2_Pin|KEY_X3_Pin|KEY_X4_Pin,GPIO_PIN_SET);  if((GPIOE->IDR & 0x00f0) == 0x0000){return -1;}else{HAL_Delay(5);if((GPIOE->IDR & 0x00f0) == 0x0000){return -1;}}HAL_GPIO_WritePin(GPIOE,KEY_X2_Pin|KEY_X3_Pin|KEY_X4_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOE,KEY_X1_Pin,GPIO_PIN_SET); if( GPIOE->IDR & 0x00f0 ){KEY_Read = GPIOE->IDR & 0x00f0 ;switch( KEY_Read ){case 0x0010: KEY_Value= 7;   break;case 0x0020: KEY_Value= 8;    break;case 0x0040: KEY_Value= 9;   break;case 0x0080: KEY_Value= 10;   break;      }return KEY_Value;}HAL_GPIO_WritePin(GPIOE,KEY_X1_Pin|KEY_X3_Pin|KEY_X4_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOE,KEY_X2_Pin,GPIO_PIN_SET); if( GPIOE->IDR & 0x00f0 ){KEY_Read = GPIOE->IDR & 0x00f0 ;switch( KEY_Read ){case 0x0010: KEY_Value= 4;    break;case 0x0020: KEY_Value= 5;    break;case 0x0040: KEY_Value= 6;    break;case 0x0080: KEY_Value= 11;      break;  }return KEY_Value;} HAL_GPIO_WritePin(GPIOE,KEY_X1_Pin|KEY_X2_Pin|KEY_X4_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOE,KEY_X3_Pin,GPIO_PIN_SET); if( GPIOE->IDR & 0x00f0 ){KEY_Read = GPIOE->IDR & 0x00f0 ;switch( KEY_Read ){case 0x0010: KEY_Value= 1;    break;case 0x0020: KEY_Value= 2;    break;case 0x0040: KEY_Value= 3;    break;case 0x0080: KEY_Value= 12;     break;  }return KEY_Value;  }       HAL_GPIO_WritePin(GPIOE,KEY_X1_Pin|KEY_X2_Pin|KEY_X3_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOE,KEY_X4_Pin,GPIO_PIN_SET); if( GPIOE->IDR & 0x00f0 ){KEY_Read = GPIOE->IDR & 0x00f0 ;switch( KEY_Read ){case 0x0010: KEY_Value= 14;   break;case 0x0020: KEY_Value= 0;    break;case 0x0040: KEY_Value= 15;   break;case 0x0080: KEY_Value= 13;     break;  }return KEY_Value;  }       return KEY_Value;
}

【STM32CubeMX+Keil+PROTEUS】之---4*4键盘仿真驱动相关推荐

  1. Proteus软件安装并结合keil软件进行51程序设计和仿真

    Proteus软件安装并结合keil软件进行51程序设计和仿真 一.keil软件安装 二.Proteus软件安装 三.任务要求 四.使用keil编写代码 1.创建工程 2.编辑程序 3.调试 五.使用 ...

  2. 【Proteus仿真】Arduino UNO +74C922键盘解码驱动4X4矩阵键盘

    [Proteus仿真]Arduino UNO +74C922键盘解码驱动4X4矩阵键盘 Proteus仿真 本例因为使用了74C922解码芯片,使得程序代码非常简单,在按下不同按键时,数码管将显示对应 ...

  3. 基于proteus的功率_学习电路仿真:基于proteus电路仿真软件的步进电机仿真

    本文是电路仿真软件的进阶篇,对于电路仿真软件的基础篇,大家可翻阅往期文章哦.本文中,将基于proteus电路仿真软件的步进电机仿真,一起来了解下吧. 步进电机广泛应用在生产实践的各个领域.它最大的应用 ...

  4. 电路仿真软件详谈(二十),基于proteus电路仿真软件的步进电机仿真

    电路仿真软件必不可少,很多朋友早已精通各种电路仿真软件,但也存在很多朋友对电路仿真软件不太了解.本文是电路仿真软件的进阶篇,对于电路仿真软件的基础篇,大家可翻阅往期文章哦.本文中,将基于proteus ...

  5. 【嵌入式基础】用C语言编程、寄存器实现LED流水灯程序;stm32CubeMX+Keil使用HAL库点亮流水灯

    本文主要介绍STM32F103系列芯片的地址映射和寄存器映射原理,GPIO端口的初始化设置步骤.利用C语言编程和寄存器点亮流水灯以及stm32CubeMX+Keil使用HAL库点灯 目录 一.STM3 ...

  6. 【嵌入式10】stm32CubeMX+Keil使用HAL库点灯,并使用逻辑分析仪观察周期

    stm32CubeMX+Keil使用HAL库点灯,并使用逻辑分析仪观察周期 一.题目要求 二.STM32CubeMX简介 1.利用CubeMX新建工程点亮LED灯 1)前期准备 2)新建工程 2.界面 ...

  7. stm32中cubmx+keil+proteus+虚拟串口+串口助手的使用

    stm32中cubmx+keil+proteus+虚拟串口+串口助手的使用 stm32cubmx keil proteus 一个简单的实例 虚拟串口+串口调试 项目设计需要,以下为微控制器模块要用到的 ...

  8. 用matlab做音乐仿真,Matlab课程设计报告--MATLAB GUI的音乐键盘仿真

    Matlab课程设计报告--MATLAB GUI的音乐键盘仿真 1 MATLAB MATLAB 实践实践 课程设计课程设计 目目 录录 1.1.设计目的设计目的3 3 2.2.题目分析题目分析3 3 ...

  9. proteus使用NE555简易电子琴仿真

    proteus使用NE555简易电子琴仿真 仿真文件 仿真文件 2022-5-23更新补充资源,电路重新搭建 链接:https://pan.baidu.com/s/1Z6ptPbXqS6J3VlS-X ...

  10. matlab音乐键盘模拟,Matlab课程设计报告--MATLAB GUI的音乐键盘仿真

    Matlab课程设计报告--MATLAB GUI的音乐键盘仿真 < MATLAB 实践 > 课程设计 目 录 1.设计目的-------------------3 2.题目分析------ ...

最新文章

  1. 喜忧参半的AI,“裸奔”之下的隐私焦虑
  2. [云炬创业基础笔记]第七张创业团队测试2
  3. CTF-练习平台-Misc之 Convert
  4. P3369-[模板]普通平衡树【有旋Treap】
  5. java magnolia,java – Magnolia富文本字段
  6. 把数字翻译成字符串python_python中如何将字符串强制转为数字
  7. 关于数据库#1063 - Incorrect column specifier for column 'xxx'异常
  8. JQuery动态增加删除元素
  9. 如何将文件从iPhone或iPad空投到Mac计算机?
  10. SzNOI语法百题之总目录
  11. 搞笑--亚阳影视官方的keyword里写“破解版”
  12. datax修复\N脏数据
  13. matlab对矩阵模板卷积,矩阵卷积Matlab(转载)
  14. 如何用 Kaldi 训练一个 DNN 声学模型
  15. Cortex M3 DWT
  16. 【POJ 3322】 Bloxorz I
  17. Win11-GTX3060-配置Pytorch GPU
  18. 计算机进制与信息编码,信息与二进制编码
  19. php小偷程序--获取网站内容
  20. Johnson_Trotter 生成排列算法

热门文章

  1. 好用的电子邮箱测评,这么多的邮箱究竟哪个最好用呢?
  2. oracle to_date 函数
  3. npm ERR! This is probably not a problem with npm. There is likely additional log ging output above.
  4. 我想用组态王与电能表通讯
  5. vim、用户管理、所有者所属组管理、监控和管理进程、服务管理
  6. Titanic练习 特征分析与选择
  7. 安装mysql staring server 失败 已经成功决解。
  8. W/View: requestLayout() improperly called by androidapp:id/toolbar_title} during second layout pass:
  9. 默认关闭idea2020的注释doc的rendered view模式
  10. SpringBoot进阶(十)整合Shiro上篇