OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5413|回复: 3

关于32键盘ascii码不对应的问题

[复制链接]

2

主题

6

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2020-5-25
在线时间
7 小时
发表于 2021-4-16 09:29:24 | 显示全部楼层 |阅读模式
6金钱
最近做一个项目,要判断键盘ascii码,网上查找键盘的上下左右键的ascii码依次是0x26,0x28,0x25,0x27  但是实际上我用debug看串口接收数组的时候却是如下显示(按一次键串口收到3个字符,依次是上下左右),和网上的完全对不上,请问这个是和什么有关?求解惑,谢谢了。(下图第一个是上网查的,第二个是debug出来的)
现实.png
网上.png

最佳答案

查看完整内容[请看2#楼]

vbKey是上位机用的,Windows给VB报告的键码,你要是用VB编写上位机,才用到这个。 你查的这个表简直风马牛不相及。 你接收到的键盘序列是0x1b,0x5b,,这个是SecureCRT的方向键报告的键值序列。 参考文档在这里:https://documentation.help/SecureCRT/Emulation-Specific_Keymappi.htm 方向键三个字节序列是VT220标准规定的,以ESC(\033, 0x1b, \e都叫这个)开头,然后是左中括号,A/B/C/D代表上下左右 参考资料在这里 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

1097

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3571
金钱
3571
注册时间
2014-12-2
在线时间
365 小时
发表于 2021-4-16 09:29:25 | 显示全部楼层
vbKey是上位机用的,Windows给VB报告的键码,你要是用VB编写上位机,才用到这个。
你查的这个表简直风马牛不相及。


你接收到的键盘序列是0x1b,0x5b,<0x41/0x42/0x43/0x44>,这个是SecureCRT的方向键报告的键值序列。
参考文档在这里:https://documentation.help/Secur ... ecific_Keymappi.htm

方向键三个字节序列是VT220标准规定的,以ESC(\033, 0x1b, \e都叫这个)开头,然后是左中括号,A/B/C/D代表上下左右
参考资料在这里:https://www.censoft.com/support/ ... Keyboard_Layout.htm


看起来你要自己写串口终端命令行了,我建议用现成的开源库:letter-shell
项目地址:https://github.com/NevermindZZT/letter-shell
它内部处理好了这种方向键,退格键等,也处理好了命令行自动补全,命令历史等,使用起来非常方便。
可以非常快速地把单片机内部的函数导出来作为命令使用,参数解析也帮你做好了。
坚决不用寄存器,拒绝重复造轮子。
回复

使用道具 举报

6

主题

890

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1477
金钱
1477
注册时间
2020-8-19
在线时间
335 小时
发表于 2021-4-16 17:32:44 | 显示全部楼层
帮顶   
回复

使用道具 举报

2

主题

6

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2020-5-25
在线时间
7 小时
 楼主| 发表于 2021-4-18 12:14:08 | 显示全部楼层
xkwy 发表于 2021-4-16 09:29
vbKey是上位机用的,Windows给VB报告的键码,你要是用VB编写上位机,才用到这个。
你查的这个表简直风马牛 ...

了解,谢谢了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-28 03:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表