USB 设备的 SetupComm、SetCommState、SetCommTimeouts 失败

2023-12-15

我正在打开一个 USB 设备:

enter image description here

用于通信使用CreateFile:

HANDLE hUsb = CreateFile("\\.\LCLD9",
      GENERIC_READ | GENERIC_WRITE, 
      0, 
      null, 
      OPEN_EXISTING, 
      FILE_FLAG_OVERLAPPED, 
      0);

调用成功(即hUsb不等于INVALID_HANDLE_VALUE)。但接下来是时候对每个串行端口执行我们所做的操作了:

  • 设置通讯(设置接收和传输缓冲区大小)
  • 设置通讯状态(设置流量控制、波特率等)
  • 设置通讯超时(设置超时时间)

每个调用都会返回一个获取最后一个错误()的代码1. E.g.:

SetupComm(hUsb, 1024, 1024);

为什么使用“USB”串行设备时配置串行设备的操作会失败,而使用“USB”串行设备时配置串行设备的操作却可以“虚拟COM端口”? USB 设备不支持这样的波特率、缓冲区、流量控制和超时吗?

如果这是通用串行设备的限制/功能,我如何检测到句柄引用了“通用串行设备”,而不是一个“通讯端口”?例如,用户是指定使用哪个端口的人:

  • \.\COM5
  • \.\LCLD9

与通用串行总线串行设备通信时失败的其他串行功能:

  • GetCommModemStatus(错误代码为1)
  • ReadFile(错误代码6)
  • PurgeComm(错误代码6)
  • WriteFile(错误代码6)

这就引出了一个更大的问题,一旦 USB 设备被打开,你如何与它通信?CreateFile?


不,USB 设备不使用这些东西。如果您的设备是实际的 USB 转 RS232(或其他慢速串行设备),那么您应该打开与其关联的 COM 端口。让驱动程序处理发送数据的工作。

USB 通信与 COM 端口不同。您可以将其更多地视为外部 PCI 总线,而不是简单的发送您想要的任何数据的线路。

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

USB 设备的 SetupComm、SetCommState、SetCommTimeouts 失败 的相关文章

  • 使用脚本清除 Internet Explorer 6.0 浏览历史记录

    我使用以下脚本删除 IE 7 0 中的浏览历史记录 RunDll32 exe InetCpl cpl ClearMyTracksByProcess 255 但现在我需要一个脚本来清除 IE 6 0 中的浏览历史记录 我收到一条错误消息 缺少
  • SQL Server Express(或任何版本)可以在 RPi 上运行吗?

    我注意到完整版的 Windows 10 可以在 RPI 3 上运行 我想知道 SQL Server Express 或任何其他版本 是否可用于 ARM 版本的 Windows 我在任何地方都看不到它 所以我怀疑答案是否定的 但想检查一下我是
  • Windows 计算机上出现“来自守护程序的错误响应:无法创建填充程序:OCI 运行时创建失败”错误

    我正在尝试构建一个简单的 Python 映像 然后在 Windows 上以交互方式访问容器 构建过程有效 但运行容器失败 这是 Dockerfile FROM python 3 10 4 WORKDIR app 生成文件 IMAGE scr
  • Windows下Kafka托管在Docker中删除主题时出现异常

    我在 Windows 的 Docker 中托管 Kafka 威斯迈斯特 卡夫卡 https hub docker com r wurstmeister kafka 使用 docker 镜像 Kafka 数据存储在本地 Windows 文件夹
  • 在新窗口中打开 SAS 程序

    目前 当您在 Windows 中双击 SAS 文件时 它将在您已打开的现有 SAS 会话中打开它 有没有办法让它在窗口中单击时会启动一个新的 SAS 窗口 据我所知 SAS 是一个所谓的 单实例 应用程序 因此它的默认行为是在现有会话中打开
  • 在 Windows 11 上无需管理员权限即可运行 Visual Studio 2022

    我在 Windows 11 上安装了 Visual Studio 2022 当我启动它时 它始终以管理员权限运行 我想在没有管理员权限的情况下运行它 我的 Windows 只有一个帐户 该帐户具有管理员权限 x 我做了什么 确认VS2022
  • 在 Jenkins 中执行批处理文件

    我有一个简单的批处理文件 我想要从 Jenkins 调用 运行 执行该文件 Jenkins 中有同样的插件吗 如何从 Jenkins 执行批处理文件 如果有相同的教程或文档 无需为此添加新插件 在Jenkins 选择您的工作名称并转到配置部
  • 如何在 PowerShell 中键入 TAB 字符?

    Task 默认情况下 在 Windows 命令提示符中按 TAB 键将输出文件名 而在 PowerShell 中则不会执行任何操作 我希望能够在交互模式下键入 TAB 字符 而不是通过脚本 Research 我在这个网站上和通过谷歌搜索发现
  • 在 Windows 上将 Mercurial (hg) 存储库转换为 Git (7)

    我现在真的很沮丧 我有一个现有的 hg 存储库 其中有几个月的编码历史 我想将其放入私有 Github 存储库中 以便我可以从那里对其进行处理 不幸的是我使用的是 Windows 我似乎找不到any转换我实际上可以正常工作的存储库的方法 实
  • Python 可执行文件:py2exe 还是 PyInstaller?

    要创建可执行文件 Windows 我假设我们应该使用其中之一 Py2exe 或 PyInstaller 它们之间有什么区别 Py2exe 和 PyInstaller 都是包装器 但我注意到以下几点差异 Py2exe 与 python2 4
  • 使用 IDLE 编辑的 .py 文件消失了

    我曾经有过Edit with IDLE当我右键单击时的选项 py文件 但我多次卸载 重新安装以使某些东西正常工作 但现在它消失了 我检查了注册表HKEY CLASSES ROOT and HKEY LOCAL MACHINE对于价值低于Py
  • .wav 文件长度/持续时间,无需读入文件

    有没有办法提取有关 wav 文件长度 持续时间的信息 而无需在 R 中读取文件 我有数千个这样的文件 如果我必须阅读每个文件才能找到其持续时间 那将需要很长时间 Windows 文件资源管理器为您提供了打开 长度 字段的选项 并且您可以查看
  • 如何更改选项卡控件的名称

    我在 C WinForms 应用程序中使用选项卡控件 我想更改选项卡的标题 默认情况下它们是 tabPage1 tabPage2 等 一种无需代码即可实现的懒惰方法 选择选项卡控件 Go to properties use F4 to do
  • Windows7上python3.5无法安装BeautifulSoup4

    我已经从下载了 beautifulsoup4 4 5 3 tar gzhttps www crummy com software BeautifulSoup bs4 download 4 5 https www crummy com sof
  • 以编程方式最小化/恢复窗口,跳过动画效果

    我需要对窗口列表执行多项操作 最小化其中一些 恢复其他 以便立即在两组或多组窗口之间切换 这样做的问题是最小化和恢复窗口时可以看到的动画 整个过程看起来很糟糕 所有这些动画都进进出出 上下移动 但是 我无法禁用这些动画 因为这是针对其他计算
  • 更改desktop.ini不会在Windows中自动更新文件夹图标

    我使用此批处理脚本将所有文件夹和子文件夹的图标更改为位于文件夹中的 ico 文件 但是 资源管理器中的文件夹图标不会改变除非我手动重命名desktop ini将资源管理器中的文件更改为其他内容 然后返回desktop ini或者例如将字母更
  • Qt(在 Windows 上)将权限级别设置为“requireAdministrator”

    我正在使用 Qt Creator 并努力制作 exe文件默认以管理员身份运行 在线阅读所有解决方案我试图将这一行放入我的 pro file QMAKE LFLAGS MANIFESTUAC level requireAdministrato
  • 设置 Form.KeyPreview = true 的缺点?

    我想知道 Form KeyPreview 属性实际上有什么用处 它为什么存在以及将其设置为 true 会带来什么 风险 我想它一定有some负面影响 否则它根本不应该存在 或者至少默认情况下是正确的 EDIT 我很清楚what确实如此 我问
  • 游戏内的java.awt.Robot?

    我正在尝试使用下面的代码来模拟击键 当我打开记事本时 它工作正常 但当我打开我想使用它的游戏时 它没有执行任何操作 所以按键似乎不起作用 我尝试模拟鼠标移动和点击 这些动作确实有效 有谁知道如何解决这个问题 我发现这个问题 如何在游戏中使用
  • 如何从Windows阻止社交媒体[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我想根据时间阻止我的电脑上的社交媒体 晚上 9 点后屏蔽 上午 11 点后解锁 如家长控制 我尝试过关注但失败了 创建了

随机推荐

  • 在Python中,如何将数字和字符串转换为字节数组?

    我想将一组配置选项编码为一长串十六进制数字 输入是数字 整数和浮点数 和字符串的混合 我可以用binascii a2b hex从字符串的标准库 整数的按位运算符 如果我去阅读一些关于浮点表示的内容 叹气 我可能也可以处理浮点数 现在 我的问
  • iOS Sprite Kit 碰撞与元素移动

    是否可以使用 Sprite 套件的物理主体进行元素碰撞并仍然允许元素相互穿过 我感兴趣的是仅当两个边界相互碰撞时才调用委托 然后允许它们相互穿过 是的 这是可能的 您可以注册对象之间碰撞的回调 但不会让碰撞影响对象本身 Raywenderl
  • 右键单击 Silverlight 4 应用程序中的列表框

    我正在尝试在 Winforms 应用程序中实现我以前认为理所当然的功能 我是一名 Silverlight 菜鸟 所以希望这一切都是基础知识 我在 Silverlight 4 应用程序中有一个列表框 我想做以下事情 右键单击列表框 让该项目位
  • 为什么 Promise 是 Monad?

    我一直在学习函数式编程 并且接触过 Monad Functor 和 Applicatives 根据我的理解 以下定义适用 a A gt B gt C A gt C B 函子 b A gt C B gt C A gt C B 单子 c C A
  • JQuery关键字“this”没有获取属性值

    我正在使用 JQuery 关键字 this 我遇到了一些我不明白的事情 这是我的代码 a jQuery com a
  • 如何使用 createBottomTabNavigator 对 React Navigation 过渡进行动画处理?

    我花了最后一天的时间试图找出如何使用反应导航实现简单的淡入淡出屏幕转换 但我找不到一种方法让它与底部选项卡导航器一起使用 有人可以帮我吗 我已经广泛阅读了文档 但动画似乎只能通过堆栈导航器使用 你能在这个小吃演示中进行过渡吗 只需创建一个A
  • Python 2.7 和 PyDev - matplotlib 和 NumPy 不起作用

    我正在尝试使用 Python 2 7 和 Eclipse 以及 PyDev 插件让 matplotlib 在 Windows 7 64 位 下工作 我安装了 NumPyhttp www lfd uci edu gohlke pythonli
  • 访问本地类中的隐藏变量

    我是 Java 新手 我对下面的示例感到困惑 public class Test int testOne member method int x 5 class inTest local class in member method voi
  • Python石头剪刀布游戏

    我正在使用Python 我正在尝试编写一个简单的程序来模拟石头 剪刀 布游戏 一切正常 除了当我收到此错误时输入无效响应 石头 布或剪刀以外的其他内容 时 Traceback most recent call last File C Use
  • SpriteKit 游戏中的 AVAudioPlayer 和性能问题

    我在使用 AVAudioPlayer 和在 spritekit 游戏中播放短声音时遇到问题 我有相当动态的游戏场景 当用户点击特定元素时 我想播放简单的 嘟嘟 声音 但我注意到使用 AVAudioPlayer 执行声音会导致严重的性能问题
  • flutter:参数格式不正确

    我是 Flutter 新手 今天我一直遇到一个问题 我无法调试我的应用程序 因为它说参数格式不正确 Parameter format not correct FAILURE Build failed with an exception Wh
  • httpurlconnection线程安全

    HttpUrlConnection 线程安全吗 IE 如果我有一个连接到服务器的 HttpConnection 实例 并且该实例由不同的线程使用 例如尝试同时发送 POST HttpUrlConnection 将如何处理这种情况 a 他们会
  • 如何将表格包裹在链接中?

    哪些元素允许链接 我想要wrap围绕 a 的链接table a href 123 php class grap table border 1 style width 600px height 600px tbody tr td align
  • MongoDB节点检查objectid是否有效

    如何使用 Node 的驱动程序检查 ObjectID 是否有效 我试过 var BSON mongo BSONPure console log Validity BSON ObjectID isValid ddsd 但我不断收到异常 而不是
  • select() 没有响应 /dev/input/mice 上的写入

    我正在编写一个程序来监视select 键盘和鼠标设备文件 它等待这些文件上的任何写入操作 这应该在有击键或鼠标移动时发生 并且一旦有写入操作 就会执行一些作业 但这不起作用 我的代码如下 include
  • 如何在 Xcode 8 中使用 Swift 3 创建 ManagedObjectContext?

    尝试在视图控制器中创建新上下文时 在新的 Xcode 8 使用 Swift 3 iOS 10 中遇到问题 AppDelegate 类型的值没有成员 managementObjectContext let context UIApplicat
  • 如何将 HTML 字符串注入到元素中?

    使用 Mootools 我们可以将一个元素注入另一个元素 childID inject parentID top 第二个参数允许我控制位置 可以是 顶部 或 底部 以将其注入到父对象中 也可以是 之前 或 之后 以将其作为同级对象注入 我们
  • 将两种表单中的数据作为 Angular 中的一个对象发布

    这是我在 Angular 上的第一个项目 我已经尽我所能 我会尝试自己完成它 但我觉得我需要帮助 项目简介 我有课mod ts export interface Mod id number name string clauseList Cl
  • 带分散聚集的 MPI 矩阵乘法

    我正在尝试使用 C 中的 MPI 进行矩阵乘法 我们必须做一个顺序版本和一个并行版本 我的并行版本没有给出正确的答案 我不知道为什么 我认为我没有向进程发送正确的通信 但我不能确定 教授只是回顾了不同的发送 接收 收集等消息 但并没有真正深
  • USB 设备的 SetupComm、SetCommState、SetCommTimeouts 失败

    我正在打开一个 USB 设备 用于通信使用CreateFile HANDLE hUsb CreateFile LCLD9 GENERIC READ GENERIC WRITE 0 null OPEN EXISTING FILE FLAG O