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