我正在尝试建立一个系统,其中节点应用程序使用串行端口将数据发送到arduino(nano,FWIW),并且在消息完成后,arduino发送回确认。
我相信arduino草图是可以的,因为使用arduino IDE串行监视器进行的测试显示了预期的行为。但是,我无法使用Serialport使它正常工作。这是代码:
const SerialPort = require('serialport'),
PORT = '/dev/ttyUSB0'
void async function main(){
var port = new SerialPort(PORT, {
baudRate: 9600
})
await new Promise(resolve => { port.on('open', resolve) })
console.log('OPEN')
port.setEncoding('utf8')
port.on('data', (d) => {
console.log('data ! ' + d.toString())
})
// message is bounded by STX and ETX chars
port.write([0x02, 0x63, 0x65, 0x03])
console.log('done')
}()
使用此代码,不会调用data
事件。我尝试在写入数据后调用drain
和flush
方法,但这似乎并没有改变。你知道我搞砸了吗?