4

我正在尝试使用 PHP 将文本发送到 LED 标志,以便我可以向它发送支持票号。标志本身就是一件作品;它来自 eBay,制作很差,几乎没有文档。在摆弄了一段时间之后,我能够弄清楚它期望的东西被发送到它的方式,并且波特率为 28800。我已经知道如何使用 PHP 与这样的东西进行通信,但我不知道知道如何将波特率更改为非标准的。我尝试了其他波特率,但无法使其正常工作。

4

3 回答 3

2

您可能想查看 Linux 中的 setserial 命令 - 使用它,您可以分配串行端口以具有非标准速率。

如果您在连接初始化端口之前按如下方式运行 setserial (在服务器初始化脚本或 PHP 中......虽然不确定这是否是一个好主意),您应该能够将其关闭:

/bin/setserial /dev/ttyS1 spd_cust baud_base 115200 divisor 4

这是命令中发生的事情:

  • spd_cust 选项告诉操作系统在应用程序请求 38400 时将速度设置为自定义除数。
  • /dev/ttyS1 是串行端口。你可以把它改成任何东西。
  • baud_base 是除数 4 使用的数字

115200 / 4 = 28800 ...您需要的速度:-)

在您的 PHP 代码中,您将在 38400 连接,这看起来很奇怪,但由于 setserial,您指定的端口将在 28800 运行

于 2010-06-08T20:37:17.897 回答
1

对于 Windows 尝试

"mode " . $device . " BAUD=" . $baud

对于 linux 试试

"stty -F " . $device . " " . $baud

我认为这些是发送的正确命令

于 2010-06-08T13:31:12.217 回答
0

看看这两个链接

于 2010-06-08T13:28:53.420 回答