gpt4 book ai didi

linux下php从串口读取数据

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:58:40 24 4
gpt4 key购买 nike

我尝试使用PHP在Linux平台上读取串口。
但我无法读取任何数据。当我尝试使用 .net 阅读时,这次我可以阅读了。

我使用“php_serial.class.php”类进行串口操作。您可以从此链接阅读此类:
here

我的代码是这样的:

<?php  
include "php_serial.class.php";

// Let's start the class
$serial = new phpSerial;

// First we must specify the device. This works on both linux and windows (if
// your linux serial device is /dev/ttyS0 for COM1, etc)
$serial->deviceSet("/dev/ttyS1");

// We can change the baud rate, parity, length, stop bits, flow control
$serial->confBaudRate(19200);
$serial->confParity("none");
$serial->confCharacterLength(8);
$serial->confStopBits(1);
$serial->confFlowControl("none");

// Then we need to open it
$serial->deviceOpen();

// read from serial port
$read = $serial->readPort();

//Determine if a variable is set and is not NULL
if(isset($read)){
while(1){
$read = $serial->readPort();
print_r(" (size ".strlen($read). " ) ");
for($i = 0; $i < strlen($read); $i++)
{
echo ord($read[$i])." ";
}
print_r("\n");
sleep(1);
}// end while
}// end if


// If you want to change the configuration, the device must be closed
$serial->deviceClose();

// We can change the baud rate
$serial->confBaudRate(19200);
?>

行“print_r(” (size “.strlen($read).” ) “);”总是返回零。串口读不到数据是什么原因?

最佳答案

我相信您现在已经解决了这个问题,但这是我的 2c 值(value)。

你读了两次串口。一次检查是否有数据,然后在有数据时再次检查。根据我的经验,读取一次会清除缓冲区,因此再次读取会产生空结果。

不要看第二遍

关于linux下php从串口读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11628002/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com