Br.*_*yan 2 linux serial-port cat rs232 stty
我想从 RS232 串行端口接收数据到我的终端并带有一个文件的指令。它应该非常简单。
cat /dev/ttyS0
cat /dev/ttyS0 > file.txt
Run Code Online (Sandbox Code Playgroud)
在此之前,我已经配置了参数以匹配设备(生物化学分析仪)的参数。
sudo stty -F /dev/ttyS0 9600 -parity cs8 cstopb
Run Code Online (Sandbox Code Playgroud)
IE
但是我在终端上没有收到任何东西。它只是空白。问题是什么?
先试试Minicom,看看你的串口返回什么。安装它sudo apt-get install minicom
您按如下方式启动它(对于 ttyS0):
sudo minicom -D /dev/ttyS0
Run Code Online (Sandbox Code Playgroud)
您可以在 Minicom 内设置通信参数(使用ctrl-A P),因此您可以确定它们是正确的。
如果您的设备使用特定协议,则它可能需要一个命令来开始其通信。所以看看用户手册。
也许您的设备已设置为使用硬件握手。如果可能,请将其关闭(至少在开始时)。
如果您无法将其关闭,那么您也必须将其设置在您身边。在 Minicom 中,这是在ctrl-A O和 然后serial port setup。
我经常使用 Minicom 来调试串行通信,我发现它效果最好。
我从 OP 收到了更多信息:
实验室仪器(Cobas C311)使用ASTM协议。在界面中,我们只需要点击“发送到主机”,它就会发送一堆 ASTM 记录。我只需要在一个文件中接收它们。有没有其他设置?开始采集数据的命令是什么?...以及如何将数据保存在文件中?
选择正确的参数。Minicom 正在展示 9600 8N2。希望没事。但什么也没收到——一点也没有。分析仪说:“仪器将 ENQ 作为发送请求发送,但主机在 15 秒内没有返回 ACK 或 NAK。(链接超时)”
该设备使用ASTM 协议。设备发送<ENQ>字符作为它准备开始发送数据的信号。
这不是您可以使用minicom或任何其他终端程序接收的东西。您将需要支持该协议的适当应用软件。
您一定要阅读您的用户手册并检查安装盘(如果有)和制造商的网站以获取支持此协议的应用程序。
如果他们没有对此设备的应用程序支持,我会感到惊讶。如果他们提供一些东西,它很可能是一个 Windows 应用程序或一些示例代码加上一个库。
自己写一些东西是可能的,但这并不容易。有一些对ASTM 的Python 支持,并且您可以尝试使用Perl 脚本。
SO 也有一个帖子,里面有一些关于 ASTM 的信息。
| 归档时间: |
|
| 查看次数: |
11333 次 |
| 最近记录: |