Serial port 通过串行链路以不同的方式发送数据

Serial port 通过串行链路以不同的方式发送数据,serial-port,serial-communication,Serial Port,Serial Communication,我试图测试无奇偶校验、偶数奇偶校验之间的差异——总是8个数据位,1个停止位 因此,我有两台电脑通过串行电缆连接,都运行RealTerm或任何其他终端 我不明白的是,无论我在发送机器上选择哪种奇偶校验,接收方总是准确地获得我发送的数据。我甚至可以在接收终端上更改奇偶校验,但我总是得到与发送的数据完全相同的数据 我想如果我发送带有偶数奇偶校验的0x03,它将在接收器上显示0x83(如果设置为无奇偶校验)和0x03(如果设置为偶数奇偶校验),但这并没有发生 我是否对平价有误解,或者原因是什么 非常感谢

我试图测试无奇偶校验、偶数奇偶校验之间的差异——总是8个数据位,1个停止位

因此,我有两台电脑通过串行电缆连接,都运行RealTerm或任何其他终端

我不明白的是,无论我在发送机器上选择哪种奇偶校验,接收方总是准确地获得我发送的数据。我甚至可以在接收终端上更改奇偶校验,但我总是得到与发送的数据完全相同的数据

我想如果我发送带有偶数奇偶校验的0x03,它将在接收器上显示0x83(如果设置为无奇偶校验)和0x03(如果设置为偶数奇偶校验),但这并没有发生

我是否对平价有误解,或者原因是什么


非常感谢

奇偶校验位是第9位,因此它不会显示在数据中。它可能只是被忽略了,因为在更现代的通信中,还有其他检测通信错误和重新传输的方法(如块中的CRC检查)


问题是,在串行通信的单个字节级别上,如果奇偶校验失败,则无法重新传输,这只能表明出现了问题。

仅选择8位作为数据,奇偶校验位是第9位,就像在您的示例中一样:无奇偶校验0x03(十六进制)0000 0011(二进制) 偶数奇偶校验0x103(十六进制)1 0000 0011(二进制)这是将要发送的


如果您在“显示为”选项卡中使用realTerm,选择binary,不允许设置奇偶校验,您将看到奇偶校验位,或者使用示波器(如果有),并且在realTerm上,“状态”选项卡上也有一些标志,如果您发送奇偶校验位,而接收器选择忽略它,则也会观察它们(中断,错误)

,然后就是这样。你可以用7比特和奇偶校验发送数据,用8比特无奇偶校验接收数据。downvotet的用户可能也想解释一下原因。谢谢我之所以想发送奇偶校验并测试它,仅仅是因为我正在为一个硬件设备编写一个控制程序,我只在一周左右的时间内收到。我想我可以在没有这个设备的情况下“模拟”情况,看看我的代码是否正常工作。所以我想,这是不可能的?我想问题是,当奇偶校验不匹配时,设备会做什么?你认为它会有什么反应。但你是对的,这可能是不可能的。我实际上还不知道。好吧,我想我得等到我把它拿到手里。但是,a能否依赖这样一个事实:在我设置PC时,它实际上会以偶数奇偶校验+8位发送数据?或者可能是PC甚至没有发送/接收第9个奇偶校验位?谢谢我不确定,但我希望PC机都会发送他们所说的发送内容,而接收者只是忽略它。