【问题标题】:Incorrect data received from serial port nodejs serial port module从串口nodejs串口模块接收到的数据不正确
【发布时间】:2020-07-16 08:07:04
【问题描述】:

我正在尝试从从 Arduino 纳米设备接收数据的串行端口读取数据,我已经有它的 matlab 实现并且它读取了正确的数据,

但是,我正在尝试将其迁移到节点 js,并且遇到以下问题, 应接收的数据为 ']oC���B�'

上面的第一帧是我在 matlab 中接收它的方式,因此我可以在 node js 中使用它,由于某种原因,整个帧被替换为“?”。尤其是诸如“ÿ”之类的字符被替换为“?”。 我正在使用串行端口模块,使用读取线解析器,sn-p 看起来像,

  myPort.on("data", data => {
    console.log(data);
  });

这绝对不是波特率问题,因为其他数据可以完美接收。它与编码有关。

【问题讨论】:

  • 能否在发送数据前设置特定的编码/字符集?
  • 如您所见,它是否将二进制数据的一部分视为字符串?是否可以全部视为二进制数据并将每个字节转换为十六进制字符串,或者将字符串/字符串数据和二进制数据分开并分别转换后再输出到日志?
  • 我认为发送数据之前的编码应该没问题,因为它在Matlab中接收良好,唯一的问题是节点js如何解析它......
  • 我也不担心被发送的数据。例如,在进行真正的处理之前,我建议你将其转换为十六进制并检查它,以确认在node.js端正确接收到数据。 How to display nodejs raw Buffer data as Hex string

标签: javascript node.js arduino serial-port


【解决方案1】:

我使用了错误的解析器。截止日期解析器试图读取字节并将扩展的 ascii 字符转换为 ?。使用字节解析器解决了这个问题。

【讨论】:

    猜你喜欢
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多