我正在尝试从连接到Arduino的USB串口获取数据。我正在使用Cygwin,我写了
cat /dev/ttyS4
输出shell中的数据。
当我停止这个过程时,我得到了
拒绝访问
当我再次尝试访问它时。我必须关闭Cygwin,再打开它并输入相同的内容 命令将输出传递给shell。
我注意到我只能从一个程序中读取串口。例如,如果我从Arduino软件的串口读取数据,我就无法在Cygwin中访问它。
有没有办法可以在Cygwin中多次访问串口数据而无需关闭程序,再打开它并用相同的命令写入?
答案 0 :(得分:0)
似乎语句cat /dev/ttyS4
将从串行端口回显字符,直到到达文件末尾。只是本质上,串口永远不会到达终点。因此,您需要安排输入“结束”。一种方法是让Arduino将文件结束字符(control-D)放入输出流。另一种方法是使用所谓的“heredoc”,你可以通过它告诉它寻找一个字符串来结束,详见this question。
但是,这仍然存在许多问题。一个是,控制-C不会关闭对串口的访问似乎是错误的。另一个是,我在我的机器上试过这个,我无法解决你提出的问题。所以,这就是我所能提供的。