我正试图通过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 /中设置或打开设备第204行的php_serial.class.php警告:无法设置奇偶校验:未在第254行的/var/www/html/php_serial.class.php中设置或打开设备警告:无法设置字符的长度:第298行/var/www/html/php_serial.class.php中未设置或打开设备警告:无法设置停止位的长度:未在/ var / www / html中设置或打开设备第335行上的/php_serial.class.php警告:无法设置流控制模式:在第376行的/var/www/html/php_serial.class.php中未设置或打开设备警告:必须先设置设备在第137行的/var/www/html/php_serial.class.php中打开警告:必须打开设备才能在第474行的/var/www/html/php_serial.class.php中读取它
这是php_serial.class
的问题吗?答案 0 :(得分:1)
deviceSet()
是序列类的一种方法。你调用它的方式,它需要是一个原生的PHP函数。
应该是:$serial->deviceSet('ttyUSB0');