0

我知道这听起来很奇怪,我真的不知道这里发生了什么。

var serialport = require("serialport");
var SerialPort = serialport.SerialPort;

var sp = new SerialPort("/dev/ttyACM1", {
  baudrate: 9600,
  parser: serialport.parsers.readline("\n")
});

sp.on('open', function () 
{
    console.log("writing...");
    sp.write('b');
    console.log("done");
});

这是我的 nodejs 脚本,当我打开串行监视器运行时,我的 arduino 中的 LED 闪烁

void setup() 
{                
  Serial.begin(9600);
  pinMode(13, OUTPUT);

}
void loop() 
{
    if(Serial.available() > 0)
    {
        digitalWrite(13, HIGH);
        delay(1000);
        digitalWrite(13, LOW);
        delay(1000);
    }
}

现在,我的问题是当我关闭串行监视器并运行我的 nodejs 脚本时,它不会闪烁我的 LED。tho,我可以在控制台中看到“正在编写...”和“完成”。

任何想法为什么会这样?或建议做什么?提前致谢。

节点版本:6.9.2 npm 版本:3.10.9 操作系统:Ubuntu 14.04 LTS

4

1 回答 1

0

我读过arduino在打开端口后无法立即接收数据。或类似的东西。所以,我尝试了这种语法,它完美地工作。

var serialport = require("serialport");
var SerialPort = serialport.SerialPort;

var sp = new SerialPort("/dev/ttyACM0", {
  baudrate: 9600,
  parser: serialport.parsers.readline("\n")
});

sp.on('open', function() {
    sp.on('data', function (data) {
        sp.write("b");
    });
});
于 2017-01-09T08:58:57.560 回答