3

与通过串口发送“ENTER”键的问题相同,我如何通过串口发送“箭头键”?尤其是向上箭头键。

4

2 回答 2

4

光标键是键盘的一个相对较新的功能。在选择 ASCII 码时它们还不存在。这主要基于当时使用的电传打字机的功能。与广泛使用的 ASR-33 一样,它的键盘布局如下所示:

在此处输入图像描述

没有光标键。请注意,换行符当时是一个单独的键,ASCII 中的 '\n'。更容易获得和影响 Unix 中行尾控制字符的选择。Return 键相当于现代键盘上的 Enter 键,即 ASCII 中的“\r”。

因此,没有标准代码可供光标键选择。您必须自己对它们进行编码。 ANSI 转义码是一个通用标准。DEC VT-52 和 VT-100的仿真也很常见。

于 2012-12-03T15:30:21.717 回答
2

由于 ARROW 键是扫描代码(未在 ASCII 表中定义),因此需要发送一个字节序列来表示箭头键(有关详细信息,请参见https://en.wikipedia.org/wiki/ANSI_escape_code)。不幸的是,这个顺序在不同的平台和目标之间可能会有所不同,因此您需要试验什么是适合您的目标的。从 Windows 上的串行控制台在 Ubuntu 16.04 目标上进行测试,ARROW UP 序列是三个字节(0x1b、0x5b、0x41),或在键盘上:'Esc''[''A'</p>

于 2019-10-08T07:34:58.307 回答