C# SerialPort.IsOpen 在物理断开连接时返回 true

2024-02-24

当物理断开 USB 端口上的串行电缆时,C# SerialPort.IsOpen 返回 true。 任何人都可以帮助我如何克服这个问题。


这不是串行端口的工作方式,它们没有像 TCP 这样的标准面向连接的协议。 “IsOpen”名称的选择并非偶然,它并不表示“Connected”,仅表示 Open() 调用成功,并且在程序退出时调用 Close() 方法可能是个好主意。

运气好的话,您应该可以看到 SerialPort.DsrHolding 属性false当您断开电缆或关闭设备电源时。 SerialPort.CtsHolding 应该指示设备已准备好接收数据。这些硬件握手信号并不总是正确实现,并且当电缆由于电噪声而断开时,它们可能会给出错误指示。

否则就没有充分的理由断开电缆,并且没有人意识到这一点,串行端口电缆总是很短。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# SerialPort.IsOpen 在物理断开连接时返回 true 的相关文章

  • OpenGL纹理渲染与原始不匹配

    我正在尝试使用 OpenGL 渲染纹理 我用作测试的纹理是白色背景上的一堆黑色矩形 如下所示 然而 在渲染时 纹理似乎被复制并叠加在其自身之上多次 我使用以下方法设置场景 std string vertexSource ShaderLoad
  • C# AES Rijndael - 检测无效密码

    我正在使用 Rijndael 加密程序中的一些敏感数据 当用户输入错误的密码时 大多数情况下CryptographicException抛出消息 填充无效且无法删除 然而 CryptStream 不会抛出密码错误的异常 而是返回错误解密的流
  • C 中的分段错误

    我需要用 0 填充二维数组 但编译后的程序会出现此错误 怎么了 int main int vert 1001 1001 int hor 1001 1001 int dudiag 1416 1416 int uddiag 1416 1416
  • 使用 gcc 编译 C 时,预处理的 .i 文件中的数字意味着什么?

    我想了解编译过程 我们可以使用以下命令查看预处理器中间文件 gcc E hello c o hello i or cpp hello c gt hello i 我大致知道预处理器的作用 但我很难理解某些行中的数字 例如 1 usr incl
  • 错误 C2064:术语不计算为采用 1 个参数的函数

    class Student bool Graduate return m bGraduate class School vector
  • 按位非运算符

    为什么要按位运算 0 打印 1 在二进制中 不是0应该是1 为什么 你实际上很接近 在二进制中 不是0应该是1 是的 当我们谈论一位时 这是绝对正确的 然而 一个int其值为0的实际上是32位全零 将所有 32 个 0 反转为 32 个 1
  • 在 DefaultHttpContext 上使用 FeatureCollection 时,响应对象为 null

    我正在测试一些 net Core 中间件 并希望使用整个 asp net Core http 管道来运行中间件 而不是模拟它 问题是 当我使用特征集合时 不知何故 响应对象没有在 httpRequest 中设置 并且它在请求本身上是只读的
  • 为什么测试在 TeamCity 中运行比直接在 NUnit 中运行需要更长的时间?

    我进行了一些 C 性能测试 基本上运行两种不同的方法 并检查一种方法的运行速度是否比另一种方法快得多 当我在 NUnit 本地运行它们时 其中一个测试的运行速度是另一个测试的十倍 因此我有一个 NUnit 测试 它使用Stopwatch检查
  • 编译器在函数名称前添加下划线前缀的原因是什么?

    当我看到 C 应用程序的汇编代码时 如下所示 emacs hello c clang S O hello c o hello s cat hello s 函数名称以下划线作为前缀 例如callq printf 为什么这样做以及它有什么优点
  • 最小对的总和

    Given 2N点 in a 2D plane 你必须将它们分组为N pairs使得所有对的点之间的距离的总和是最小可能值 所需的输出只是总和 换句话说 如果a1 a2 an分别是第一对 第二对 和第 n 对点之间的距离 则 a1 a2 a
  • 如何忽略搜索条件中的空属性

    我有一个不好的要求要做 无论如何 我必须在我的应用程序中实现它 我有一个Track class public class Track public string Name get set public string City get set
  • C语言:如何获取使用strtok()一次后剩余的字符串

    我的字符串是 A B C D E 分隔符是 如何获取执行 strtok 一次后剩余的字符串 即 B C D E char a A B C D E char separator char b strtok a separator printf
  • MPI_Gatherv:根数组中收到的垃圾值

    我正在尝试实施MPI Gatherv函数于C 根据我的程序 包括 root 在内的每个进程都应该创建一个大小等于 进程的等级 1 这将在所有单元格中保持进程的等级 然后这个本地数组被收集到根的 rcv array 中 不知何故 我得到了垃圾
  • Global.asax 错误处理程序或自定义 IHttpModule 错误处理程序未捕获未处理的异常

    我有一个类 DPCal EventMove 的一种方法 我想限制使用角色的访问 我有一个 Global asax cs 错误处理程序和一个自定义 IHttpModule 错误处理程序 旨在捕获未处理的异常 并将它们 Server Trans
  • 如何从句柄确定进程是 32 位还是 64 位?

    如何从使用 OpenProcess 获取的进程句柄中获取信息 无论进程是 32 位还是 64 位 是的 IsWow64Process 毫无用处 令人烦恼 它的真正意思是 启用了 32 位模拟 如果您在 32 位操作系统上运行 则返回 fal
  • 如何最好地为 Visual Studio 2017 构建的 CMake C++ 项目设置输出目录?

    我使用 Visual Studio 2017 使用 vcxproj 文件构建 C 桌面项目 我喜欢默认行为 其中输出目录是项目下面的子目录 例如 myproj sln myproj vcxproj x64 myproj release my
  • 检测用户是否正在滚动 dataGridView 滚动条

    我正在更新一个dataGridView与一个新的数据表使用 dataGridView1 DataSource table 但是 我不想在用户滚动 dataGridView 时执行此操作 如何检查滚动条是否正在滚动或已完成滚动 即拖动而不是单
  • 序列化时如何跳过 xml 声明?

    我正在尝试输出一个没有 xml 头的 xml 文件 例如 我试过 Type t obj GetType XmlSerializer xs new XmlSerializer t XmlWriter xw XmlWriter Create c
  • 没有运算符“<<”与这些操作数匹配[重复]

    这个问题在这里已经有答案了 不知道发生了什么事 我查看了与此问题类似的其他帖子 但到目前为止没有解决方案有帮助 这是带有错误部分注释的代码 在某一时刻 它说 不起作用 而在代码的其余部分中 它说 include
  • 字符串常量之前应有非限定 ID

    我目前正在编写一个 C 应用程序 它与 math h 结合实现了振荡器 我拥有的代码应该可以很好地用于该应用程序 尝试编译目标文件 但是我遇到编译器错误 很可能与语法 等有关 我认为这与命名空间有关 错误 终端输出 User Name Ma

随机推荐

  • 在 Vue.js 中如何使用多个路由器视图,其中一个视图位于另一个组件内?

    我有一个 Vue js 单页应用程序 其中有一个使用的主导航栏
  • 在网站访问之间安全存储凭据

    我正在建立一个网站 允许用户创建帐户并访问网站的内容 我不希望用户每次访问该网站时都登录 因此我计划将用户名和密码存储在 cookie 中 但是 我听说这是不好的做法 即使密码经过哈希处理饼干 我应该遵循哪些 最佳实践 才能在用户访问我的网
  • 将字节数组转换为十六进制字符串

    令人惊讶的是 对我来说 这段代码没有达到我想要的效果 fun ByteArray toHexString String return this joinToString it toString 16 事实证明Byte is signed 因
  • 服务模型和 f#

    我刚刚从 f 开始 所以这个问题对你们中的一些人来说可能看起来很简单 所以 我尝试使用位于 System ServiceModel Syndicate 命名空间中的 SyndicateFeed 我向项目添加了以下引用 System Serv
  • `iter().map().sum()` 和 `iter().fold()` 一样快吗?

    编译器是否生成相同的代码iter map sum and iter fold 最终他们实现了相同的目标 但是第一个代码将迭代两次 一次是为了map并一次为sum 这是一个例子 哪个版本会更快total pub fn square s u32
  • 数组到二叉搜索树快速

    给定一个整数数组 有没有办法将其快速转换为二叉搜索树 不平衡 我尝试为每个元素一一插入 但这意味着我必须从头开始遍历每次插入 它工作得很好 但我认为最坏的情况是 O N 2 不平衡 例如数组已排序 鉴于 N 个很大 我认为这将需要一些时间
  • 尝试用另一种语言解密时出现错误的 AES 解密

    当我尝试在 C 中加密并在 C 中解密时 出现错误 输入数据不是一个完整的块 但这对我来说没有任何意义 因为如果我尝试用 C 解密消息 与我进行加密的语言相同 它工作得很好 所以 C 部分的一些代码 int main int argc ch
  • Mysql select递归获取具有多个级别的所有子级

    我有一张桌子 CREATE TABLE IF NOT EXISTS Folder idFolder INT 11 NOT NULL AUTO INCREMENT FolderName VARCHAR 150 NOT NULL idFolde
  • 强制关闭电报上的弹出窗口“打开此链接?”

    当我在帖子中使用 html 格式并创建链接时 Telegram 会显示一个弹出窗口before打开链接 是否有脚本或其他东西可以强制关闭弹出窗口并立即打开链接 我不想插入链接没有 HTML 在单击链接之前 我按下 Enter 键 我使用 A
  • Android - 在 TextView 上显示带边框文本的方法?

    有没有办法在 TextView 上显示带边框的文本 我建议延长TextView http developer android com reference android widget TextView html See Android 自定
  • 如何在 MacBook Air 上的 iOS 模拟器中滚动?

    我有一个滚动视图和一个嵌入的 UIImageView 代码是正确的 但我无法在模拟器中滚动 可能是因为我有触控板 而不是鼠标 或者我可以吗 您需要启用 3 指拖动 从 Apple 菜单中选择 系统偏好设置 单击辅助功能图标 在侧边栏中选择
  • 如何禁用 openssl 中的特定密码套件?

    我想保护我的服务器免受 FREAK 攻击 因此我想禁用所有使用 Openssl 导出级 RSA 密钥的密码套件 有没有办法禁用 openssl 中的特定密码套件 如果是 我该怎么做 有没有办法禁用 openssl 中的特定密码套件 如果是
  • 内存限制=80M。 imagecreatefromjpeg() 的最大图像尺寸是多少?

    我有一个虚拟主机 最大内存限制为 80M 即 ini set memory limit 80M 我正在使用使用函数 imagecreatefromjpeg 的照片上传 当我上传大图片时出现错误 致命错误 允许的内存大小 83886080 字
  • 使用 then() 使函数在节点中顺序运行

    我想在序列总线中运行循环函数 该函数总是异步的 有什么方法可以使其同步而不使用回调或任何外部库 file 1 var db require promiseUnderStanding var fun function for var i 0
  • 如何求两个表的总和?

    我有两个表 第一个名称是 销售 第二个名称是 项目 两个表中都有相同的 code 和 qtd 列 我想编写 MYSQL 查询 我需要两个表中的 sum qtd 其中两个表中的代码相同 对于单表 我正在使用这个 按代码从销售组中选择代码 su
  • FORTRAN 95:是否可以在不共享源代码的情况下共享模块?

    我希望能够共享 FORTRAN 95 模块而不共享其源代码 是否可以这样做 也许通过共享 MOD 文件 如果这是相关的 我在 Plato 上使用 Silverfrost FTN95 编译器 到目前为止 我只能通过使用外部模块的源代码来完成这
  • 为什么 _mm_mulhrs_epi16() 总是进行有偏舍入到正无穷大?

    有谁知道为什么pmulhrsw指示或 mm mulhrs epi16 x RoundDown x y 16384 32768 总是向正无穷大舍入 对我来说 这对负数有很大的偏差 因为像 0 6 0 6 0 6 0 6 这样的序列平均起来不会
  • C++ 矢量 和套接字

    有没有办法调用 send recv 传递向量 在 C 中缓冲套接字数据的好习惯是什么 例如 读取直到 r n 或直到 upper bound 4096 字节 std vector
  • Rails错误resource_name - devise帮助路由和渲染

    我正在尝试渲染 Devise gem 的登录视图 但出现错误 下面是我当前拥有的代码 这是我的views users shared links html erb br br
  • C# SerialPort.IsOpen 在物理断开连接时返回 true

    当物理断开 USB 端口上的串行电缆时 C SerialPort IsOpen 返回 true 任何人都可以帮助我如何克服这个问题 这不是串行端口的工作方式 它们没有像 TCP 这样的标准面向连接的协议 IsOpen 名称的选择并非偶然 它