首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在与串口设备通信时正确超时?

如何在与串口设备通信时正确超时?
EN

Stack Overflow用户
提问于 2009-04-07 05:14:56
回答 3查看 2.9K关注 0票数 0

我使用的是串口通信C# windows应用程序。我写了一个程序,从端口获取数据,对其进行操作,并通过串口写入数据。

我的问题是,如果设备没有通电,电源断开,或设备长时间不响应命令,我如何知道?在我的程序中,我编写了正常的执行流程。但是如果长时间没有响应,程序就会继续等待很长时间。我用了计时器,但它不能正常工作。

有谁能帮帮我吗?

EN

回答 3

Stack Overflow用户

发布于 2009-04-07 05:41:57

如果在C#中使用"SerialPort“对象,则可以使用ReadTimeOut和WriteTimeOut属性。

票数 4
EN

Stack Overflow用户

发布于 2009-04-07 05:21:40

你有两个选择:

  1. 如果您的设备应该正在生成数据,您可以在串行端口上侦听来自的数据,如果在一段设定的时间内没有收到任何数据,则可以认为该设备处于脱机状态,
  2. 会定期通过串行端口向您的设备发送数据,如果出现异常,您将知道您的设备处于脱机状态。
票数 0
EN

Stack Overflow用户

发布于 2009-04-07 18:10:14

可能有帮助的一件事是,如果您使用的电缆与DTR / DSR交叉,这意味着当您的程序启动时,您将提高DTR,而另一个设备see的DSR将变为高电平,进而提高它的DTR,从而提高您的DSR。

如果您使用未知的电缆并与您无法控制的设备进行通信,那么您将不得不使用.Timeout。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/724201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档