2.23 haas506 2.0开发教程 - KeyPad - 矩阵键盘(仅支持M320开发板)
haas506 2.0开发教程 - KeyPad - 矩阵键盘
- 矩阵键盘
- 320矩阵键盘连线
- 案例说明
- 测试代码
- 功能测试
- class - KeyPad
- keypad.init() - 初始化keypad
- keypad.set_callback(usrFun) - 设置回调函数
矩阵键盘
- 矩阵键盘是单片机外部设备中所使用的排布类似于矩阵的键盘组。在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显。
320矩阵键盘连线
- 矩阵式结构的键盘显然比直接法要复杂一些,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。
- 开发板KEYIN1~KEYIN5是输入口,作为列线
- 开发板KEYOUT0~KEYOUT3是输出口作为行线
- 总共组成19个键的矩阵键盘(其中KEYIN5与KEYOUT3键值不存在)
案例说明
- 如下图,使用两组线,一组接入行线,一组接入列线
- 本案例将行线与列线短接,检测320开发板的矩阵键盘返回数值
测试代码
main.py
from driver import KeyPad
import utime as timekeypad=KeyPad()
keypad.init()
#usrFun参数为list数据类型,list[0]: 对应键值;list[1] :按键状态:按下为1,松开为2
def userfun(l_list):if l_list[1] == 1 :print('key_value:',l_list,'-------------------')else:print('release the key:',l_list)keypad.set_callback(userfun)
while True:time.sleep_ms(500)
功能测试
- 将两组线随机短接测试,pin脚接触时打印(‘key_value:’,l_list,‘-------------------’)
- 松开时打印(‘release the key:’,l_list)
- 不同行列的pin脚短接会返回不同的键值,共计19个键值.
class - KeyPad
keypad.init | keypad.set_callback |
---|---|
初始化keypad | 设置回调函数 |
创建keypad对象
keypad = KeyPad()
参数:
- 无
keypad.init() - 初始化keypad
参数:
- 无
返回值:
- 成功返回0,失败返回-1。
keypad.set_callback(usrFun) - 设置回调函数
作用:
- 按键接入模组后,按放按键后触发回调函数设置。
参数
参数 | 参数类型 | 参数说明 |
---|---|---|
usrFun | function | 回调函数,当外接键盘按键按放会触发此函数。 |
注意:usrFun参数为list数据类型。
list包含2个参数。其含义如下:
list[0]: 对应键值
list[1] :按键状态:按下为1,松开为2
2.23 haas506 2.0开发教程 - KeyPad - 矩阵键盘(仅支持M320开发板)相关推荐
- SAP UI5 应用开发教程之三十五 - 如何把本地开发的 SAP UI5 应用部署到 ABAP 服务器上试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...
- 5.32 综合案例2.0 - TTS语音云播报(支持M320开发板)
HaaS506 - TTS语音云播报 简介 准备 硬件接口 代码流程 功能实现 1.物联网平台开发 2.设备端开发 代码 调试 3.应用平台开发 3.1新建'普通项目' 3.2关联产品和设备 3.3新 ...
- 微信网页开发教程 php,PHP实现微信网页授权开发教程,php授权教程_PHP教程
PHP实现微信网页授权开发教程,php授权教程 微信网页授权是服务号才有的高级功能,开发者可以通过授权后获取用户的基本信息:在此之前,想要获取消息信息只能在用户和公众号交互时根据openid获取用户信 ...
- mapbox-gl开发教程(一):搭建前端开发环境
–mapbox-gl是一个开源.基于webgl技术的前端地图类库– 开发教程篇一:搭建前端开发环境 1.mapbox官网注册一个账号,生成一个开发token,在mapbox-gl2.0以前,使用自搭建 ...
- 微信小程序开发教程:项目二微信小程序开发基础 课后习题
<微信小程序开发教程>主编/黄寿孟 易芳 陶延涛 湖南大学出版社 目录 一.单选题 二.多选题 三.判断题 四.填空题 五.简答题 1.请简单描述页面样式的单位rpx与px的关系. 2.简 ...
- 不会ps可不可以html5开发,零基础的 PhotoShop CEP 6 开发教程 「 7 」UI - HTML 开发的一些细节...
<零基础的 PhotoShop CEP 6 开发教程>系列目录 CEP 面板实际上就是一个 Chormium 改造的浏览器(准确来说是 LIBCEF),在 CC2015 上 LIBCEF ...
- 安卓底层linux开发教程,Android手机平台移植与底层开发 PDF
支持Android的热门ARM硬件平台简介 ARMv7架构SOC l TI OMAP系列,2009年OMAP3和OMAP4关注度较高 l Freescale i.MX51系列 l Qualcomm 8 ...
- android 多界面开发,安卓开发教程(Android多界面应用程序开发)
安卓开发教程(Android多界面应用程序开发) 开篇 本文阅读需10分钟,简单易上手,属于安卓开发教程的基础部分. 建议精读,深刻理解大意.多做实践.多写代码. 本文章由做全栈攻城狮原创首发. 同名 ...
- 聆思CSK6开发工具使用详解(支持Zephyr开发)
目录 前言 工具概况 命令行工具lisa zep简介 安装 检查和修复 更新 常用命令行指令演示(灯控示例) 创建工程 编译工程 烧录 VSCode插件包 CSK Application Develo ...
最新文章
- iphonex重量_精仿苹果iPhone X手机配置介绍
- 关于 Capella 需要纠正的语音
- mysql为什么要重建索引_Oracle 重建索引的必要性
- Ubuntu 12.04 root用户登录设置
- jeecg3.8popup弹出窗口触发失去焦点事件,引发验证弹窗,影响体验问题的解决办法
- Win10开机跳过欢迎界面直接进系统桌面的设置方法
- shiro-cas------整合springboot客户端
- 无共享模式的数据架构
- TCP 的 keeplive保活机制
- 安川机器人外部急停信号点不开_安川机器人外部IO启动
- c语言编写五子棋报告,C语言编写五子棋游戏
- 编译原理实验一:单词的词法分析程序设计
- wbincms v1.5 综合门户管理系统发布 thinkphp3.2.3+amazui-2.5.2
- 改进YOLOv7系列:23.YOLOv7添加CBAM注意力机制
- matlab应用最简差分格式,泊松方程有限差分格式的构造以及MATLAB实现.docx
- c语言常用算法pdf,妙趣横生的算法(C语言实现 第2版) 带目录完整pdf[94MB]
- 第八章 STM32+SGP气体传感器+DHT11温湿度传感器+OLED模块显示室内温湿度、二氧化碳和甲醛浓度
- win11更新后,edge浏览器闪屏掉帧
- 我对双飞翼布局理解,以及双飞翼布局的好处
- 利用IP查主机名的三种方法