【问题标题】:Cannot change baud rate in C# even if the port is closed and reopened after setting new baud rate即使在设置新波特率后关闭并重新打开端口,也无法在 C# 中更改波特率
【发布时间】:2012-10-17 04:27:24
【问题描述】:

我在论坛上有一个类似的问题。 Change baud rate in C# without closing connection 。在那个问题中,我问如何在不关闭端口的情况下更改波特率。有人建议我关闭并重新打开端口,但在问这个问题之前我已经尝试过了,它也没有用。关闭和重新打开端口对我来说并不重要(第三方软件也与同一个仪表交谈,当我监控它时没有关闭端口,所以我问这个问题认为它可能是一个线索)重要的是改变波特设备的速率。我正在等待帮助。感谢您的时间.. 费尔达·奥兹德米尔

【问题讨论】:

  • 您能否详细说明您要连接的设备?
  • 您好 Dbasnett,我正在连接电子电表。它从 300 波特开始,然后到 4800 波特。该设备还有另一个软件。我运行该软件并监视端口。我看到它向仪表发送 ACK 命令以将波特率更改为 4800 并继续读取。但是在我的软件中,我向仪表发送了相同的命令,但我无法再与它通信了。
  • 你试过在 4800 运行你的程序吗?
  • 是的,我试过了。这样我就无法得到仪表的任何响应。

标签: c# serial-port baud-rate


【解决方案1】:

我的串行端口对象是在我的主窗体中定义的。我将作为参数发送到我的阅读功能。并在那里做所有事情,比如打开端口、设置波特率、写入数据、关闭端口等。但我在另一个线程中运行这个函数。当我尝试更改波特率时,我认为存在延迟或其他原因,因此我无法正确更改波特率。然后我改变了我的代码,现在我可以改变波特率并继续做其他事情。谢谢你的帮助。

【讨论】:

  • 您必须等到驱动程序有机会清空写入缓冲区。在需要一段时间的 300 波特下,它每秒只写入 30 个字节。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-29
  • 2021-06-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多