我知道这可能听起来很奇怪,我真的不知道这里发生了什么。
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闪烁导致
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闪烁。那么,我可以在控制台看到“写作......”和“完成”。
任何想法为什么会发生这种情况?或建议做什么?提前致谢。
节点版本:6.9.2 npm版本:3.10.9 操作系统:Ubuntu 14.04 LTS
答案 0 :(得分: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");
});
});