PHP以串行方式使用奇怪的波特率

时间:2010-06-08 13:22:36

标签: php serial-port baud-rate

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

3 个答案:

答案 0 :(得分:2)

您可能希望在Linux中查看setserial命令 - 使用它,您可以指定一个串行端口以获得非标准速率。

如果你在连接初始化端口之前运行setserial,你应该可以将它拉下来(在服务器初始化脚本或PHP中......但不确定这是不是一个好主意):

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

这是命令中发生的事情:

  • 当应用程序请求38400时,spd_cust选项告诉操作系统将速度设置为自定义除数。
  • / dev / ttyS1是串口。你会把它改成什么。
  • baud_base是除数4
  • 使用的数字

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

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

答案 1 :(得分:1)

对于Windows,请尝试

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

对于linux试试

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

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

答案 2 :(得分:0)