linux中的php串口通讯

pru*_*i09 8 php linux serial-communication

我在fedora 13中安装了xampp.我正在尝试通过串口使用php串口与微控制器通信.我的代码是example.php

include("php_serial.class.php");
$serial = new phpSerial();
$serial->deviceSet("0");

$serial->confBaudRate(9600); //Baud rate: 9600 
$serial->confParity("none"); //Parity (this is the "N" in "8-N-1") 
$serial->confCharacterLength(8); //Character length (this is the "8" in "8-N-1") 
$serial->confStopBits(1); //Stop bits (this is the "1" in "8-N-1") 
$serial->confFlowControl("none"); //Device does not support flow control of any kind, so set it to none.

//Now we "open" the serial port so we can write to it
$serial->deviceOpen();

$serial->sendMessage("*1" ); //sleep(1); // echo "hi"; $serial->deviceClose();

?>
Run Code Online (Sandbox Code Playgroud)

php脚本被执行但提供以下警告.

警告:指定的串行端口在第147行的/opt/lampp/htdocs/xampp/php_serial.class.php中无效警告:无法设置波特率:未在/ opt/lampp/htdocs中设置或打开设备第241行/xampp/php_serial.class.php警告:无法设置奇偶校验:设备未在第295行的/opt/lampp/htdocs/xampp/php_serial.class.php中设置或打开

...我使用了命令:chmod 0777/dev/ttyUSB0来授予权限.我还尝试使用命令将apache用户"prudhvi"添加到拨出组:$ usermod -a -G dialout prudhvi

但它不起作用.当我使用命令:echo 1>/dev/ttyUSB0直接从终端发送命令时,它工作,并且'1'被传输到串行端口.但是使用php我得到了上述警告.

我使用"$ whoami"来检查用户名,并将该用户"prudhvi"添加到拨出组.它仍然无法正常工作.请帮帮我们.

Chr*_*ton 0

首先测试 hello world 类型的 php 脚本来测试您的基本安装。

然后验证 Web 服务器/php 引擎是否以用户身份运行,该用户所在的组允许访问与串行端口对应的适用 /dev/ttyWHATEVER 设备文件。如果默认情况下确实如此,那将是令人惊讶的 - 您可能必须将其添加到“拨出”或类似组中。

在您的代码中添加一些错误检查/报告。