0

我目前正在 windows 下的 C++ 应用程序中实现串行连接终端。我正在使用 Windows 超级终端通过串行连接与我的设备通信。

例如使用超级终端:

> C (then hit Enter)
> Bla bla bla... Answer from the equipment

使用我在 C++ 上的串行连接:

send("C\n\r");

什么也没发生。它只是等待“命令结束”字符。

在 Jeff Atwood 博客上阅读了一些关于 LF/CR 的信息后,我尝试了任何可能的 CR + LF 组合。他们都没有做这项工作。

所以我的问题是,超级终端将什么字符序列解释为“输入输入,让我们处理”。

Ps:我的串口连接很好,我现在两种方式都在使用它,这方面没有问题。

4

1 回答 1

3

它默认模拟电传打字机,因此当您按下 Enter 键时会发送回车符(ASCII 代码 0x0d 或 '\r')。键盘不再像以前的电传打字机那样具有换行键,因此您必须按 Ctrl+J 来生成换行符(ASCII 代码 0x0a 或 '\n')。

记住正常的顺序,回车是第一个,“\r\n”。如果您现在使用 send("C\n\r"),您可能需要调整您的代码。

自从我修补它已经太久了,但是 iirc 它有配置告诉它在您按 Enter 时发送换行符或 cr+lf。

于 2014-02-14T13:20:08.560 回答