php串口不工作
我试图使用PHP使我的Arduino发出一个信号。每当我运行下面的代码时,它都会显示“无效串行端口”,尽管它是有效的php串口不工作,php,windows,serial-port,arduino,Php,Windows,Serial Port,Arduino,我试图使用PHP使我的Arduino发出一个信号。每当我运行下面的代码时,它都会显示“无效串行端口”,尽管它是有效的 <?php include 'serial_connect.php'; $serial = new phpSerial; $serial->deviceSet("COM2"); $serial->deviceOpen(); $serial->sendMessage("1000"); $serial->deviceClose(); ?>
<?php
include 'serial_connect.php';
$serial = new phpSerial;
$serial->deviceSet("COM2");
$serial->deviceOpen();
$serial->sendMessage("1000");
$serial->deviceClose();
?>
请帮忙。谢谢。如果没有,请检查您的COM2是否已在设备管理器中安装、启用并正常工作。您使用的是哪种型号的Arduino?我认为如果没有更多的信息,这个问题是无法回答的。将这些信息添加到原始问题中可能是明智的。另外,如果不注册帐户,我们就看不到php_serial类的源代码,我不希望这样做。
我意识到这更多的是一个评论而不是一个答案,但我需要更多的代表来评论(我认为这是S.O.声誉系统中的一个缺陷)。但如果没有更多的信息,原始问题将无法得到答案,因此我觉得有必要添加。祝您好运。您没有在PHP代码中设置波特率 您是否尝试过使用终端仿真器(如Hyperterm)来确认串行端口已正确连接
您可能需要使用字符串
\\.\COM2
作为串行端口的名称——这就是我在编写的C程序中所做的。请注意,您可能需要避开这些反斜杠:“\\\\.\\COM2”
PHP串行类代码中有几个错误
功能设备集
不适用于linux上的ttyUSB0或ttyACM0开箱即用
函数位,
$this->os===osx的if需要是一个ELSEIF
然后,当试图从PI或BBB连接到Arduino时,您仍然需要
stty-F/dev/ttyACM0 ignpar
要使其正常工作…您有访问COM2的权限吗?我猜主机是一台windows计算机?1。我不确定,也不确定如何检查。2.是的,这是一台windows机器。我现在就去设置波特率,我已经在java上使用这个端口有一段时间了,我确信它可以工作,我会尝试那些串行端口。请添加一些标记,以及您尝试过的确切示例。另见:
int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
if(Serial.available() > 0) {
int time = Serial.parseInt();
digitalWrite(ledPin, HIGH);
delay(time);
digitalWrite(ledPin, LOW);
}
}