我使用this library与Java串口通讯。此外,我正在使用USB转串口转换器连接到设备。 下面是有关该设备的文档:RS232串口通讯设置
2.1 物理接口 主机之间所需的物理接口和VGM是EIA-232接口。
2.2 逻辑接口 串行数据链路应以每秒(BPS)19,200位的速度运行,其中一个 起始位,8位数据位,唤醒位和一个停止位。唤醒位应在消息的第一个字节中设置为 ;对于 消息的其余部分,应该清除唤醒位。当响应主机时,VGM应清除唤醒位。
我有点困惑如何设置连接到串行端口时的rs232库设置。有波特率设置,数据位长度(5,6,7,8),停止位(1,2)和奇偶校验设置。当我搞砸这些设置时,我当然会得到不同的输出(大部分时间看起来像垃圾)。你能帮我猜一下关于引用文档的设置吗?
根据该规范,简单的解决方案是使用能够支持9位数据帧的USART来容纳唤醒位。这里有一些[9位串口购物建议](http://superuser.com/questions/411386/seeking-9-bit-serial-port-card-for-windows-pc/411438#411438)。否则,您需要使用8位数据长度加奇偶校验,并配置奇偶校验以标记第一个字节,然后重新配置为剩余字节的空间。奇偶校验位(具有8位数据)将占用帧中与唤醒位相同的位位置。 – sawdust
@sawdust嗯,我玩的设置和8位数据,19.2kbit boud,1停止位和奇偶校验集,甚至我觉得我正在得到一些东西。例如,当我用这个设置加载Java中的字节数组时,如果我通过使用每个新字节的前4位和后4位来将每个字节分成2个字节,我想我会按照文档的意图得到正确的消息。我必须在周一再玩一次。这听起来对你而言似乎合理吗? –
否。将每个字节拆分为半字节是错误的和不必要的。尝试重新配置奇偶校验位的Java可能会遇到问题。 – sawdust