该类提供矩阵键盘接口。
构造函数
machine.KeyPad
class machine.KeyPad(row,col)
参数描述:
-
row
- 行,int类型,大于0,不超过平台支持最大值。
-
col
- 列,int类型,大于0,不超过平台支持最大值。
如果row和col均不设置,默认为4X4。
最大行
|
最大列
|
6(EC200UXXAA系列只支持4行,见管脚说明)
|
4
|
最大行
|
最大列
|
5(EG810MEU只支持3行)
|
5(EG810MEU只支持3行)
|
KeyPad引脚对应关系:
当不使用全部引脚时,接线按行列号从小到大顺序接线,比如EC600M使用2x2矩阵键盘时,硬件使用49、51和48、50引脚。
行号
|
行号引脚
|
列号
|
列号引脚
|
行号0
|
引脚号49
|
列号0
|
引脚号48
|
行号1
|
引脚号51
|
列号1
|
引脚号50
|
行号2
|
引脚号53
|
列号2
|
引脚号52
|
行号3
|
引脚号55
|
列号3
|
引脚号54
|
行号4
|
引脚号56
|
列号4
|
引脚号57
|
行号
|
行号引脚
|
列号
|
列号引脚
|
行号0
|
引脚号86
|
列号0
|
引脚号87
|
行号1
|
引脚号76
|
列号1
|
引脚号77
|
行号2
|
引脚号85
|
列号2
|
引脚号84
|
行号3
|
引脚号82
|
列号3
|
引脚号83
|
行号4
|
引脚号74
|
列号4
|
引脚号75
|
行号
|
行号引脚
|
列号
|
列号引脚
|
行号0
|
引脚号86(EG810MEU不支持)
|
列号0
|
引脚号87(EG810MEU不支持)
|
行号1
|
引脚号76
|
列号1
|
引脚号77
|
行号2
|
引脚号85(EG810MEU不支持)
|
列号2
|
引脚号84(EG810MEU不支持)
|
行号3
|
引脚号82
|
列号3
|
引脚号83
|
行号4
|
引脚号74
|
列号4
|
引脚号75
|
行号
|
行号引脚
|
列号
|
列号引脚
|
行号1
|
引脚号20
|
列号2
|
引脚号105
|
行号2
|
引脚号16
|
列号3
|
引脚号21
|
行号3
|
引脚号116
|
列号4
|
引脚号1
|
行号
|
行号引脚
|
列号
|
列号引脚
|
行号0
|
引脚号83
|
列号0
|
引脚号115
|
行号1
|
引脚号84
|
列号1
|
引脚号78
|
行号2
|
引脚号113
|
列号2
|
引脚号79
|
行号3
|
引脚号114
|
列号3
|
引脚号80
|
行号4
|
引脚号81(EC200UXXAA系列不支持)
|
列号4
|
/
|
行号5
|
引脚号82(EC200UXXAA系列不支持)
|
列号5
|
/
|
行号
|
行号引脚
|
列号
|
列号引脚
|
行号0
|
引脚号105
|
列号0
|
引脚号55
|
行号1
|
引脚号106
|
列号1
|
引脚号129
|
行号2
|
引脚号107
|
列号2
|
引脚号128
|
行号3
|
引脚号108
|
列号3
|
引脚号127
|
行号4
|
引脚号104
|
列号4
|
引脚号126
|
行号5
|
引脚号103
|
列号5
|
引脚号125
|
行号
|
行号引脚
|
列号
|
列号引脚
|
行号0
|
引脚号39
|
列号0
|
引脚号83
|
行号1
|
引脚号20
|
列号2
|
引脚号28
|
行号2
|
引脚号27
|
列号3
|
引脚号25
|
行号3
|
引脚号26
|
列号4
|
引脚号1
|
行号
|
行号引脚
|
列号
|
列号引脚
|
行号0
|
引脚号53
|
列号0
|
引脚号52
|
行号1
|
引脚号49
|
列号1
|
引脚号54
|
行号2
|
引脚号55
|
列号2
|
引脚号50
|
行号
|
行号引脚
|
列号
|
列号引脚
|
行号0
|
引脚号74
|
列号0
|
引脚号75
|
行号1
|
引脚号76
|
列号1
|
引脚号77
|
行号2
|
引脚号86
|
列号2
|
引脚号87
|
行号3
|
引脚号82
|
列号3
|
引脚号81
|
行号4
|
引脚号29
|
列号4
|
引脚号28
|
行号
|
行号引脚
|
列号
|
列号引脚
|
行号0
|
引脚号74
|
列号0
|
引脚号75
|
行号1
|
引脚号76
|
列号1
|
引脚号77
|
行号2
|
引脚号86
|
列号2
|
引脚号87
|
行号3
|
引脚号82
|
列号3
|
引脚号81
|
示例:
>>> # 创建keypad对象
>>> import machine
>>> keypad=machine.KeyPad(2,3) # 设置为2行3列矩阵键盘
>>> keypad=machine.KeyPad() # 参数缺省,默认设置为4行4列矩阵键盘
>>> keypad=machine.KeyPad(2) # 行值设置为2,列值缺省,列值默认为4,初始化为2行4列矩阵键盘
方法
keypad.init
keypad.init()
该方法用于初始化keypad设置。
返回值描述:
设置成功返回整型值
0
,设置失败返回整型值
-1
。
keypad.set_callback
keypad.set_callback(usrFun)
该方法用于设置回调函数,外接按键接入模组后,当外接键盘按键按放时会触发此回调函数。
参数描述:
以EC600M为例,假设按键连接的管脚为49,52脚,按下后产生的回调的参数为[1,0,2],松开后产生的回调的参数为[0,0,2]。
返回值描述:
设置成功返回整型值
0
,设置失败返回整型值
-1
。
keypad.deinit
keypad.deinit()
该方法用于解除初始化,释放初始化的资源和回调函数设置。
返回值描述:
设置成功返回整型值
0
,设置失败返回整型值
-1
。
使用示例:
import machine
import utime
is_loop = 1
keypad=machine.KeyPad()
keypad.init()
def userfun(l_list):
global is_loop
if l_list[0] != 1 :
is_loop = 0
print('will exit')
print(l_list)
keypad.set_callback(userfun)
loop_num = 0
while is_loop == 1 and loop_num < 10:
utime.sleep(5)
loop_num = loop_num +1
print(" running..... ",is_loop,loop_num)
keypad.deinit()
print('exit!')