当您按"Enter"键时,Windows超级终端下发送哪些字符
What characters are sent under Windows HyperTerminal when you hit the "Enter" key
我目前正在Windows下的C++应用程序中实现串行连接终端。我正在使用Windows超级终端通过串行连接与我的设备进行通信。
例如,使用超级终端:
> C (then hit Enter)
> Bla bla bla... Answer from the equipment
使用我的串行连接C++:
send("Cnr");
什么也没发生。它只是等待"命令结束"的卡特拉克特。
在Jeff Atwood博客上阅读了一些关于LF/CR的内容后,我尝试了CR + LF的任何可能的组合。他们都没有完成这项工作。
所以我的问题是,HyperTerminal将什么序列解释为"输入已键入,让我们处理"。
Ps:我的串行连接工作得很好,我现在以两种方式使用它一段时间了,这边没有问题。
默认情况下,
它模拟电传打字机,因此当您按 Enter 键时,它会发送回车符(ASCII 代码0x0d或"\r")。 键盘不再像以前的电传打字机那样具有换行键,因此您必须按 Ctrl+J 生成换行(ASCII 代码 0x0a 或"")。
请记住正常顺序,回车符首先是"\r"。 如果您现在使用 send("C\r"),则可能需要调整代码。
自从我修补它以来已经太久了,但是 iirc 它有配置告诉它在按 Enter 时发送换行或 cr+lf。
相关文章:
- C++字符*缓冲区的大小
- HEX值到wchar_t字符(UTF-8)的转换
- 为什么 Serial.println(<char[]>);返回随机字符?
- 如何在linux终端中同时编译和运行c++代码
- 我的字符计数代码计算错误.为什么
- 字符串-C++后显示的随机字符
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 如何在C++中从字符串中分割字符
- 为什么msgrcv()将垃圾字符馈送到缓冲区
- 指向指向字符数组的指针数组的指针
- 如何用转义符替换字符串中的所有特殊字符
- 为什么 sscanf 无法从一个字符串中读取uint64_t和字符?
- 比较字符数组
- 终端不会为C++文件创建.exe文件吗
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 从矢量<无符号字符>转换为字符* 包括垃圾数据
- 将终端设置为原始模式:仅在按下下一个键后显示字符
- 从终端 C++ 中的字符串中打印出 unicode 字符
- 当您按"Enter"键时,Windows超级终端下发送哪些字符
- 将UTF-32字符打印到终端