与通过串口发送"ENTER"键的问题类似,如何通过串口发送箭头键,尤其是向上箭头键。
与通过串口发送"ENTER"键的问题类似,如何通过串口发送箭头键,尤其是向上箭头键。
光标键是键盘的一个相对较新的功能。在选择ASCII码的时候,它们还不存在。这主要基于当时使用的电传打字机的能力。像广泛使用的ASR-33一样,它的键盘布局如下:
没有光标键。请注意,在 ASCII 中,换行符是一个单独的键,'\n'。这使得访问更加容易,影响了 Unix 中行尾控制字符的选择。回车键相当于现代键盘上的 Enter 键,在 ASCII 中是 '\r'。
因此,没有可供选择的光标键标准代码。你需要自己编码。ANSI 转义代码是常见的标准。DEC VT-52 和 VT-100 的仿真也非常普遍。
Esc[nA
= 将光标向上移动n行。 - Olivier Jacot-Descombes由于箭头键是扫描码(不在ASCII表中定义),因此需要发送一系列字节来表示箭头键(详情请参见https://en.wikipedia.org/wiki/ANSI_escape_code)。不幸的是,这个序列可能因不同平台和目标而有所不同,因此您需要进行实验以确定正确的序列。
在Windows上的串行控制台测试Ubuntu 16.04目标,箭头向上的序列为三个字节(0x1b、0x5b、0x41),或者在键盘上:'Esc' '[' 'A'