我正在尝试在Raspberry Pi 3上使用带有Node的serialport。 我正在使用的代码简单地回应了它所读取的内容。问题是某些字节没有回显。我使用两个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。
答案 0 :(得分: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'));
}
});