node-serialport - 节点串行端口串行端口构造函数中的 dataBits 选项有什么作用?
问题描述
我正在使用 node-serialport 包,并且遇到了可传递给 SerialPort 构造函数的一组选项。其中之一称为dataBits。我在文档中唯一能找到的是它可以采用值 5、6、7 或 8(默认值)。这是什么意思?
此外,更一般地说,我发现这个包的文档缺少许多重要的细节。有谁知道任何可能更有帮助的优秀教程资源?
解决方案
您通常可以忽略此选项,除非您需要它。默认是最常见的。
linux 文档项目对带有此摘录的串行端口进行了概述。
在通过 RS-232 端口串行传输字节时,总是先发送低位(位序)。PC 上的串行端口使用异步通信,其中有一个开始位和一个停止位来标记一个字节的开始和结束。这称为成帧,成帧的字节有时称为帧。因此,每个字节总共发送 9、10 或 11 位,其中 10 位是最常见的。8-N-1 表示 8 个数据位,无奇偶校验,1 个停止位。当一个计数起始位时,这总共增加了 10 位。一位停止位几乎被普遍使用。
我强烈推荐他们来了解串行端口的功能。Node SerialPort 的网站更多关于如何使用 node SerialPort。
不过我会总结一下,因为它可能有用。
虽然现代设备期望大多数字节具有 8 位,但旧设备通常一次只能处理 7(或 6 或 5)位。他们反过来会期望串行传输的“数据包”仅包含这些位数。一个很好的例子是第一款Microsoft 串行鼠标。它的硬件、串行鼠标协议和它的驱动程序只需要 7 位数据包。这将是dataBits
串行端口术语中的 7。因此,操作系统不会等待第 8 位,而是会创建一个“7 位字节”并将其传递回应用程序。如果您没有此设置,它将等待第 8 位,该位将成为下一个数据包的一部分,并且看起来不会正确。
推荐阅读
- kubernetes - 我们在 opsgenie 中收到 KubepiLatencyHigh 错误
- android - 为 Android 构建 OpenSSH
- python - Cassandra 查询令牌功能在输入错误时没有可行的替代方案
- java - 如何防止 NaN 值附加到 ArrayList?
- ios - 将 iOS 应用程序发布到 Appstore ITMS-90424 时,SwiftFolder 为空错误
- python - 在 Python 中制作此图表可视化的最佳方法
- javascript - 其他函数如何访问 Promise 值进行处理?
- java - 如何让用户输入进入for循环并使程序循环直到用户输入退出
- sql - 查询一个多值列的多个值
- java - 获取矩阵的平均值