4

我正在尝试从连接到 Arduino 的 USB 串行端口获取数据。我正在使用 Cygwin,我写

cat /dev/ttyS4

在shell中输出数据。

当我停止这个过程时,我得到了

拒绝访问

当我尝试再次访问它时。我必须关闭 Cygwin,再次打开它并输入相同的命令以获取 shell 的输出。

我注意到我只能从一个程序中读取串行端口。例如,如果我从 Arduino 软件中的串口读取数据,我无法在 Cygwin 中访问它。

有没有一种方法可以让我在 Cygwin 中多次访问串行端口数据,而不必关闭程序,再次打开它并写入相同的命令?

4

1 回答 1

0

该语句似乎cat /dev/ttyS4会从串行端口回显字符,直到到达文件末尾。只是,从本质上讲,串行端口永远不会到达终点。因此,您需要将输入安排为“结束”。一种方法是让 Arduino 将文件结尾字符 (control-D) 放入输出流中。另一种方法是使用所谓的“heredoc”,您可以通过它告诉它查找要结束的字符串,如this question中所述。

但是,这仍然存在许多问题。一是,control-C 不会关闭对串行端口的访问似乎是错误的。另一个是,我在我的机器上试过这个,我不能让它产生你问的问题。所以,这就是我所能提供的。

于 2013-05-09T22:28:35.137 回答