节点串口写的问题

时间:2018-03-29 14:38:20

标签: javascript node.js arduino serial-port

我正在尝试将命令从节点服务器发送到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);
  }

谢谢!

1 个答案:

答案 0 :(得分:0)

您是否尝试过其他更高的波特率(例如:57600)。增加波特率将有助于更快地发送和接收数据。