API / OS支持“9位”串行通信

时间:2009-12-11 22:07:44

标签: serial-port serial-communication

java的javax.comm库是否支持“9位”串行通信? (使用奇偶校验位或“地址位”作为用于成帧信息的带外信令机制)

win32通信API是否支持它?

我猜这两个问题的答案都是否定的,但我认为有人比我更有经验。

3 个答案:

答案 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奇偶校验:这是否是地址字节以及它的位的奇偶校验和。 我检查了解决方案,效果很好。