按键出现两个键值的问题分享

adb shell input keyevent 192

输出两个keyCode 192 和23 。,这个23是 哪里来的 ?

key BUTTON_5 {
    base:                               fallback DPAD_CENTER
}

后面经过群里的兄弟提示是组合键,后面发现 下面两个地方有定义

\frameworks\base\data\keyboards\Virtual.kcm

frameworks\base\data\keyboards\Generic.kcm

2021-11-01 17:00:09.261 1305-2675/? D/WindowManager: interceptKeyTq keycode=192 interactive=true keyguardActive=false policyFlags=2b000000
2021-11-01 17:00:09.261 1305-1460/? D/WindowManager: interceptKeyTi keyCode=192 down=false repeatCount=0 keyguardOn=false mHomePressed=false canceled=false
2021-11-01 17:00:09.262 2887-2887/? E/WindowInputEventReceiver keycode: InputEvent 7216 sss = KeyEvent { action=ACTION_UP, keyCode=KEYCODE_BUTTON_5, scanCode=0, metaState=0, flags=0x0, repeatCount=0, eventTime=149889, downTime=149889, deviceId=-1, source=0x101 }
2021-11-01 17:00:09.266 1305-1460/? D/WindowManager: interceptKeyTq keycode=23 interactive=true keyguardActive=false policyFlags=6b000000
2021-11-01 17:00:09.266 1305-1460/? D/WindowManager: interceptKeyTi keyCode=23 down=false repeatCount=0 keyguardOn=false mHomePressed=false canceled=false

把这个   fallback DPAD_CENTER 改成none 问题解决

好的,以下是单片机汇编代码,实现两个单片机收发通信,发送子程序捕获开发板的按键触发串口发送键值,接收子程序将键值0-f显示在数码管。请注意,以下代码是基于 STC89C52 单片机编写的,如果您使用不同的单片机,可能需要进行适当修改。 ``` ; 定义串口波特率为9600 MOV TMOD, 20H MOV TH1, -3 SETB TR1 ; 发送子程序 SEND: ; 捕获按键值 MOV A, P1 ; 将按键值转换为ASCII码 ADD A, #30H ; 发送数据 MOV SBUF, A ; 等待发送完成 WAIT_SEND: JNB TI, WAIT_SEND CLR TI ; 延时一段时间 MOV R7, #100 DELAY: DJNZ R7, DELAY ; 跳回等待按键触发 JMP SEND ; 接收子程序 RECEIVE: ; 等待接收数据 WAIT_RECEIVE: JNB RI, WAIT_RECEIVE CLR RI ; 读取接收到的数据 MOV A, SBUF ; 如果是数字,将ASCII码转换为数码管显示的数字 CJNE A, #3AH, NOT_DIGIT SUB A, #30H JMP DISPLAY ; 如果是字母A~F,将ASCII码转换为数码管显示的字母 NOT_DIGIT: CJNE A, #41H, NOT_A MOV A, #0AH JMP DISPLAY NOT_A: CJNE A, #42H, NOT_B MOV A, #0BH JMP DISPLAY NOT_B: CJNE A, #43H, NOT_C MOV A, #0CH JMP DISPLAY NOT_C: CJNE A, #44H, NOT_D MOV A, #0DH JMP DISPLAY NOT_D: CJNE A, #45H, NOT_E MOV A, #0EH JMP DISPLAY NOT_E: CJNE A, #46H, NOT_F MOV A, #0FH JMP DISPLAY NOT_F: ; 如果不是数字或字母A~F,不做处理 JMP RECEIVE ; 将数字或字母显示在数码管上 DISPLAY: MOV P2, A ; 延时一段时间 MOV R7, #100 DELAY_DISPLAY: DJNZ R7, DELAY_DISPLAY ; 清空数码管 MOV P2, #0 ; 跳回等待接收数据 JMP RECEIVE ``` 以上代码仅供参考,您需要根据具体硬件和需求进行适当修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值