2

我正在尝试通过 Linux 下的串行端口与微控制器通信。我为此目的使用 USB 到串行电缆,但我的 php 脚本给了我以下错误:

致命错误:调用未定义的函数 deviceSet()

这是我的脚本

error_reporting(E_ALL);
ini_set('display_errors', '1');     //displays php errors

include("php_serial.class.php");

$serial = new phpSerial();

deviceSet('ttyUSB0'); //for linux serial /dev/ttySP(0-4) for usb /dev/ttyUSBN

// If you want to change the configuration, the device must be closed 
//$serial->deviceClose();
$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(2);  //Stop bits (this is the "1" in "8-N-1")
$serial->confFlowControl("none");

$serial->deviceOpen();
// To write into $serial->sendMessage("1");
$read = $serial->readPort();

我怀疑 php_serial.class 文件无法通过 USB 运行串行连接,有什么想法吗?

这似乎也有问题:

# dmesg | grep tty
console [tty0] enabled
usb 3-2: FTDI USB Serial Device converter now attached to ttyUSB0
ftdi_sio ttyUSB0: ftdi_submit_read_urb - failed submitting read urb, error -1

谢谢。

我编辑了 $serial ->deviceSet() 现在出现了一堆错误

指定的串口在第 111 行的 /var/www/html/php_serial.class.php 中无效 警告:无法设置波特率:设备未在 /var/www/html/php_serial.class 中设置或打开第 204 行的 .php 警告:无法设置奇偶校验:设备未设置或在第 254 行的 /var/www/html/php_serial.class.php 中打开 警告:无法设置字符长度:设备要么未在第 298 行的 /var/www/html/php_serial.class.php 中设置或打开警告:无法设置停止位的长度:设备未在 /var/www/html/php_serial 中设置或打开。第 335 行的 class.php 警告:无法设置流控制模式:设备未设置或在第 376 行的 /var/www/html/php_serial.class.php 中打开 警告:必须先设置设备才能打开在 /var/www/html/php_serial.class.php 第 137 行警告:必须打开设备才能在第 474 行的 /var/www/html/php_serial.class.php 中读取它

这是 php_serial.class 的问题吗

4

1 回答 1

1

deviceSet()是串行类的方法。你调用它的方式,它需要是一个原生的 PHP 函数。

它应该是:$serial->deviceSet('ttyUSB0');

于 2013-03-11T15:30:42.047 回答