Serial port API/OS支持;9位;串行通信

Serial port API/OS支持;9位;串行通信,serial-port,serial-communication,Serial Port,Serial Communication,java的库是否支持“9位”串行通信?(使用奇偶校验位或“地址位”作为帧信息的带外信令机制) win32 communications API是否支持它 我猜答案在这两方面都是否定的,但我想有人在这方面比我更有经验。据我所知,win32 comm API不支持这一点 但是,您可以使用各种奇偶校验模式来模拟它 设置MARKPARITY将第9位设置为1 设置SPACEPARITY将第9位设置为0 我不能说该库的java版本,但我确信它支持设置奇偶校验模式,这样您就可以执行上述操作并获得第9位。您应该

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

win32 communications API是否支持它


我猜答案在这两方面都是否定的,但我想有人在这方面比我更有经验。

据我所知,win32 comm API不支持这一点

但是,您可以使用各种奇偶校验模式来模拟它

设置
MARKPARITY
将第9位设置为
1

设置
SPACEPARITY
将第9位设置为
0

我不能说该库的java版本,但我确信它支持设置奇偶校验模式,这样您就可以执行上述操作并获得第9位。

您应该遵循这一点。
您的主要问题将是如何处理9位,因为当windows api无法处理它时,java应该如何解决这个问题


Bt有专业的卡/驱动程序来解决这个问题(见链接)

我想对karoberts的回答发表评论,但我缺乏声誉。所以我必须“回答”

karoberts提出了一个很好的方法,如果我们需要一个软件解决方案来解决我们的问题(JCS引文,几乎是这样,不是吗?)

但是,今天Python(2.7)试图做完全相同的事情时,可能会出现一种情况:我的PC拒绝接受奇偶校验标记和奇偶校验空间作为配置my/dev/ttyS5的选项。所以我在Stack Overflow中搜索了可以做什么-并遇到了这个主题

我已经找到了一个答案(关闭),杰布在下一个答案中告诉我们Tincho指出了一个问题,建议根据两个因素设置每个字节的奇偶校验:这是否是地址字节以及其位的奇偶校验和是多少。
我检查了解决方案,它工作得很好。

这是用于发送的,那么接收呢?(我必须以每个字节为基础进行处理…呃…看起来使用base64编码为带外信息留出空间会更容易。)是的,如果必须对每个字节都进行更改,那就不太好了。它应该可以用于发送和接收