首页 文章

Raspberry serialport使用Node.js删除数据

提问于
浏览
0

我只是简单地回应它所读取的内容 . 问题是某些字节没有回显 . 我使用两个USB串口适配器,一个连接到我的PC,一个连接到树莓 . 我正在使用RealTerm来编写和读取数据 . 我正在使用npm-serialport包 . 我也尝试了raspi-serial,结果相同 .

我在C中尝试了类似的程序,一切都很好,它可以达到230400,这是我想用Node实现的 . 所以这告诉我这不是硬件问题 .

只有在同时读写时才会出现问题 .

降低波特率似乎有所帮助,但我需要它快于1200 bps .

这是我正在使用的代码:

var SerialPort = require('serialport');
const serial = new SerialPort('/dev/ttyUSB0',{baudRate:9600});
serial.on('data',(data)=>{
        console.log(data.toString('utf8', 0, 1));
        serial.write(data.toString('utf8', 0, 1));
});

这个picture显示了PC和Raspberry之间的逻辑分析器 . 上面的行是树莓写的,下面的行就是PC发送的内容 . 我正在重复发送字符串1234567890 .

1 回答

  • 0

    事实证明,这不是应该如何使用库来实现我想要的 . 问题是我在“流动模式”中使用读取流,您希望避免这种应用程序 .

    这段代码对我有用:

    serial.on('readable',() => {
        var buffer = serial.read();
        if(buffer){ //serial.read() could return null if there's nothing to read
                console.log(buffer.toString('utf8'));
                serial.write(buffer.toString('utf8'));
        }
    });
    

相关问题