我正在尝试将命令从节点服务器发送到arduino mega board并返回。它工作正常,我只在1000毫秒内调用SERIALPORT.write
一次,但如果我更快地尝试它,我就不会收到任何控制信息。
的node.js:
if (SERIALPORT) {
SERIALPORT.on("open", function () {
SERIALPORT.on('data', function(data) {
for (let c of data) {
console.log(c.toString());
}
});
});
function repeat_function() {
command = [1];
SERIALPORT.write(command, function(err) {
if (!err) {
console.log('message writtn ' + command);
}
});
setTimeout(repeat_function, 1000);
}
repeat_function();
}
arduino代码:
void loop()
{
if (Serial.available()) {
Serial.write(Serial.read());
}
}
如果我尝试setTimeout(myFunc, 500);
,那么我就不会收回序列数据。
设置node.js:
var serialPort = new SerialPort(CONFIG.serial_port, {
baudrat: 9600,
dataBits: 8,
parity: 'none',
stopBits: 1,
flowControl: false
});
设置arduino:
void setup() {
Serial.begin(9600);
}
谢谢!
答案 0 :(得分:0)
您是否尝试过其他更高的波特率(例如:57600)。增加波特率将有助于更快地发送和接收数据。