java的javax.comm
库是否支持“9位”串行通信? (使用奇偶校验位或“地址位”作为用于成帧信息的带外信令机制)
win32通信API是否支持它?
我猜这两个问题的答案都是否定的,但我认为有人比我更有经验。
答案 0 :(得分:1)
据我所知,win32 comm API不支持此功能。
但是,您可以使用各种奇偶校验模式进行模拟。
设置MARKPARITY
会将第9位设置为1
设置SPACEPARITY
会将第9位设置为0
我不能说库的java版本,但我确信它支持设置奇偶校验模式,这样你就可以完成上述操作并获得第9位。
答案 1 :(得分:0)
Yout应遵循此Seeking FOSS serial port component which can handle 9 data bits 你的主要问题是处理9位,就像windows api无法处理它一样,java应该如何解决这个问题?
有专业的卡片/驱动程序来解决这个问题(见链接)
答案 2 :(得分:0)
我想对 karoberts 回答发表评论,但我缺乏声誉。所以我必须“回答”。
karoberts 提出了一个很好的方法,如果我们需要一个软件解决方案来解决我们的问题(JCS引用,差不多,不是吗?)
但是可能会引起我今天遇到的情况,Python(2.7)试图做同样的事情:我的电脑拒绝接受PARITY_MARK和PARITY_SPACE作为配置我的/ dev / ttyS5的选项。所以我在Stack Overflow中搜索了可以做什么 - 并遇到了这个话题......
我已找到答案(关闭)question, jeb 在下一个答案中告诉我们。 Tincho 指向article,建议根据2个因素为每个字节设置EVEN或ODD奇偶校验:这是否是地址字节以及它的位的奇偶校验和。 我检查了解决方案,效果很好。