php-serial无法正常工作

时间:2012-11-25 04:05:11

标签: 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();
?>

serial_connect.php类是php-serial,链接在这里:http://www.phpclasses.org/package/3679-PHP-Communicate-with-a-serial-port.html

这是我的Arduino草图:

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);
    }
}

请帮忙。感谢。

3 个答案:

答案 0 :(得分:2)

如果还没有,请检查您的COM2是否已在设备管理器中安装,启用并正常工作。您还在使用什么型号的Arduino?我不认为没有更多信息就可以回答这个问题。将该信息添加到原始问题中可能是明智之举。另外,我们无法在没有注册帐户的情况下看到php_serial类的来源,我不希望这样做。 我意识到这不仅仅是一个评论,而是一个答案,但我需要更多的代表评论(在我看来,SO的声誉系统存在缺陷。)但是如果没有更多信息,原始问题就无法得到答案,所以我觉得补充是恰当的。祝你好运。

答案 1 :(得分:2)

您没有在PHP代码中设置波特率。

您是否尝试使用终端仿真器(如Hyperterm)确认您的串口是否正确连接?

您可能需要使用字符串\\.\COM2作为串行端口的名称 - 这就是我在我编写的C程序中所做的。请注意,您可能需要转义那些反斜杠:"\\\\.\\COM2"

答案 2 :(得分:0)

PHP串行类代码中有几个错误。

功能DeviceSet 开箱即用的ttyUSB0或ttyACM0在Linux上不起作用;

功能冲突, $ this-> os === osx的if必须是ELSEIF

然后,当仍然尝试从PI或BBB连接到Arduino时,您需要 stty -F / dev / ttyACM0 ignpar 使它正常工作...

相关问题