从串行端口接收数据

从串行端口接收数据

我想从 RS232 串行端口接收数据到我的终端,并向文件发出指令。这应该很简单。

cat /dev/ttyS0
cat /dev/ttyS0 > file.txt

在此之前,我已经配置了参数以匹配设备(生化分析仪)。

sudo stty -F /dev/ttyS0 9600 -parity cs8 cstopb

IE

  1. 波特率 - 9600
  2. 奇偶校验 - 无
  3. 位 - 8 位
  4. 停止位 - 2

但我在终端上没有收到任何东西。它只是空白的。问题是什么?

答案1

尝试微型计算机首先,看看你的串行端口返回什么。使用以下命令安装它:sudo apt-get install minicom

您可以按如下方式启动它(对于 ttyS0):

sudo minicom -D /dev/ttyS0

您可以从 Minicom 内部设置通信参数(使用ctrl-A P),以确保它们是正确的。

如果您的设备使用特定协议,则可能需要命令来启动通信。因此,请查看用户手册。

您的设备可能设置为使用硬件握手。如果可能,请将其关闭(至少一开始就关闭)。

如果您无法关闭它,那么您也必须在您这边进行设置。在 Minicom 中,它位于 下,ctrl-A O然后serial port setup

我经常使用 Minicom 来调试串行通信,我发现它效果最好。

我从原帖者那里得到了更多信息:

实验室仪器(Cobas C311)使用 ASTM 协议。在界面中,我们只需单击“发送到主机”,它就会发送一堆 ASTM 记录。我只需要在文件中接收它们。还有其他设置吗?开始获取数据的命令是什么?...以及如何将数据保存在文件中?

选择正确的参数。Minicom 显示 9600 8N2。希望没问题。但什么也没收到——一个位也没有。分析仪说,“仪器将 ENQ 作为发送请求传输,但主机在 15 秒内未返回 ACK 或 NAK。(链接超时)”

该设备使用ASTM 协议。设备发送该<ENQ>字符作为已准备好开始发送数据的信号。
您无法使用minicom或任何其他终端程序接收该字符。您需要支持此协议的适当应用软件。

您一定要阅读用户手册并检查安装盘(如果有)和制造商网站,以查找支持此协议的应用程序。
如果他们没有支持此设备的应用程序,我会感到惊讶。如果他们提供某些东西,那很可能是 Windows 应用程序或一些示例代码加上库。

可以自己写一些东西,但并不容易。Python 支持美国试验材料协会还有Perl 脚本你可以尝试一下。

SO 也有一个邮政包含一些有关 ASTM 的信息。

相关内容