【问题标题】:C# serial rs232 parity errorC#串行rs232奇偶校验错误
【发布时间】:2011-01-13 16:43:39
【问题描述】:

我正在尝试让一个简单的串行阅读器在 C# 中读取来自 rs232 的信息。我正在使用VS2008。我可以使用 HyperTerminal 和 python 很好地接收数据,但每次尝试将字符传输到 C# 时,我都会收到奇偶校验错误。数字工作正常,只是字符。它的配置与超级终端完全相同:9600 波特、1 个停止位、无奇偶校验、无握手。什么可能导致只有字符而不是数字?

【问题讨论】:

  • 您的文本是如何编码的?你能发布一个小样本吗?
  • 据我所知,它没有编码。我只是一次从 PIC 上的 UART 端口发送一个字符(如果重要,则为 dsPIC30F1614A)。或者我误解了你的问题。

标签: c# serial-port parity


【解决方案1】:

配置为“无奇偶校验”时怎么会出现奇偶校验错误?

您是否看到存储在数据流中的校验和失败(相对于 RS-232 奇偶校验位)?使用 C# 串口类时是否遇到异常?

显示一些数据转储。

您也可以尝试使用 realterm,它可以显示接收到的原始字符的十六进制值。将 C# 字节数组转换为十六进制也很容易。然后比较两者以查看字符是否丢失或更改或实际问题是什么。

在故障描述得更好之前,我们无法提出任何解决方案。

【讨论】:

  • 没有例外。它只是打印出 ParityReplace 设置的问号。我会试试 realterm ty。
  • 您在 dsPIC 中使用什么晶体?显示在 PIC 上设置串行端口的代码(尤其是波特率发生器的分频器)。这听起来更像是帧错误而不是奇偶校验错误,如果波特率偏离超过 1% 左右,这可能会偶尔发生(尽管这通常不是 9600 波特的问题,但对于 115200 波特我不得不选择专为 RS-232 通信而制造的晶体,例如 11.059MHz)如果 PIC 在 PC 预期没有奇偶校验位时发送奇偶校验位,那么当接收器正在寻找停止位时就会有奇偶校验位 - 错误。跨度>
猜你喜欢
  • 2014-03-01
  • 1970-01-01
  • 2013-03-18
  • 1970-01-01
  • 2015-07-03
  • 1970-01-01
  • 2015-06-29
  • 2017-06-22
  • 2015-01-10
相关资源
最近更新 更多