【STM32CubeMX+Keil+PROTEUS】之---4*4键盘仿真驱动
一、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键盘仿真驱动相关推荐
- Proteus软件安装并结合keil软件进行51程序设计和仿真
Proteus软件安装并结合keil软件进行51程序设计和仿真 一.keil软件安装 二.Proteus软件安装 三.任务要求 四.使用keil编写代码 1.创建工程 2.编辑程序 3.调试 五.使用 ...
- 【Proteus仿真】Arduino UNO +74C922键盘解码驱动4X4矩阵键盘
[Proteus仿真]Arduino UNO +74C922键盘解码驱动4X4矩阵键盘 Proteus仿真 本例因为使用了74C922解码芯片,使得程序代码非常简单,在按下不同按键时,数码管将显示对应 ...
- 基于proteus的功率_学习电路仿真:基于proteus电路仿真软件的步进电机仿真
本文是电路仿真软件的进阶篇,对于电路仿真软件的基础篇,大家可翻阅往期文章哦.本文中,将基于proteus电路仿真软件的步进电机仿真,一起来了解下吧. 步进电机广泛应用在生产实践的各个领域.它最大的应用 ...
- 电路仿真软件详谈(二十),基于proteus电路仿真软件的步进电机仿真
电路仿真软件必不可少,很多朋友早已精通各种电路仿真软件,但也存在很多朋友对电路仿真软件不太了解.本文是电路仿真软件的进阶篇,对于电路仿真软件的基础篇,大家可翻阅往期文章哦.本文中,将基于proteus ...
- 【嵌入式基础】用C语言编程、寄存器实现LED流水灯程序;stm32CubeMX+Keil使用HAL库点亮流水灯
本文主要介绍STM32F103系列芯片的地址映射和寄存器映射原理,GPIO端口的初始化设置步骤.利用C语言编程和寄存器点亮流水灯以及stm32CubeMX+Keil使用HAL库点灯 目录 一.STM3 ...
- 【嵌入式10】stm32CubeMX+Keil使用HAL库点灯,并使用逻辑分析仪观察周期
stm32CubeMX+Keil使用HAL库点灯,并使用逻辑分析仪观察周期 一.题目要求 二.STM32CubeMX简介 1.利用CubeMX新建工程点亮LED灯 1)前期准备 2)新建工程 2.界面 ...
- stm32中cubmx+keil+proteus+虚拟串口+串口助手的使用
stm32中cubmx+keil+proteus+虚拟串口+串口助手的使用 stm32cubmx keil proteus 一个简单的实例 虚拟串口+串口调试 项目设计需要,以下为微控制器模块要用到的 ...
- 用matlab做音乐仿真,Matlab课程设计报告--MATLAB GUI的音乐键盘仿真
Matlab课程设计报告--MATLAB GUI的音乐键盘仿真 1 MATLAB MATLAB 实践实践 课程设计课程设计 目目 录录 1.1.设计目的设计目的3 3 2.2.题目分析题目分析3 3 ...
- proteus使用NE555简易电子琴仿真
proteus使用NE555简易电子琴仿真 仿真文件 仿真文件 2022-5-23更新补充资源,电路重新搭建 链接:https://pan.baidu.com/s/1Z6ptPbXqS6J3VlS-X ...
- matlab音乐键盘模拟,Matlab课程设计报告--MATLAB GUI的音乐键盘仿真
Matlab课程设计报告--MATLAB GUI的音乐键盘仿真 < MATLAB 实践 > 课程设计 目 录 1.设计目的-------------------3 2.题目分析------ ...
最新文章
- 喜忧参半的AI,“裸奔”之下的隐私焦虑
- [云炬创业基础笔记]第七张创业团队测试2
- CTF-练习平台-Misc之 Convert
- P3369-[模板]普通平衡树【有旋Treap】
- java magnolia,java – Magnolia富文本字段
- 把数字翻译成字符串python_python中如何将字符串强制转为数字
- 关于数据库#1063 - Incorrect column specifier for column 'xxx'异常
- JQuery动态增加删除元素
- 如何将文件从iPhone或iPad空投到Mac计算机?
- SzNOI语法百题之总目录
- 搞笑--亚阳影视官方的keyword里写“破解版”
- datax修复\N脏数据
- matlab对矩阵模板卷积,矩阵卷积Matlab(转载)
- 如何用 Kaldi 训练一个 DNN 声学模型
- Cortex M3 DWT
- 【POJ 3322】 Bloxorz I
- Win11-GTX3060-配置Pytorch GPU
- 计算机进制与信息编码,信息与二进制编码
- php小偷程序--获取网站内容
- Johnson_Trotter 生成排列算法
热门文章
- 好用的电子邮箱测评,这么多的邮箱究竟哪个最好用呢?
- oracle to_date 函数
- npm ERR! This is probably not a problem with npm. There is likely additional log ging output above.
- 我想用组态王与电能表通讯
- vim、用户管理、所有者所属组管理、监控和管理进程、服务管理
- Titanic练习 特征分析与选择
- 安装mysql staring server 失败 已经成功决解。
- W/View: requestLayout() improperly called by androidapp:id/toolbar_title} during second layout pass:
- 默认关闭idea2020的注释doc的rendered view模式
- SpringBoot进阶(十)整合Shiro上篇