【问题标题】:How to write a simple C program for usb port? [closed]如何为usb端口编写一个简单的C程序? [关闭]
【发布时间】:2010-10-07 08:21:22
【问题描述】:

我想在 linux 上测试 USB

【问题讨论】:

  • 你想做什么?您想与什么设备通信?
  • 请编辑您的问题;添加以下几点可能会为您提供更好的答案: 1. 您到底想要完成什么以及为什么(不,从问题中不清楚)? 2. 到目前为止你尝试过什么? 3. 你得到了什么结果? 4. 这与您预期的结果有何不同?
  • 键盘可以是USB。用 C 语言制作一个控制台程序,它接受一行文本输入。那是“USB的c程序”。这是为什么您提出的问题不会得到您想要的结果的示例。
  • 我喜欢 OP edited 的问题(在所有这些 cmets 之后),但仍然没有扩展它,只是删除了一个句子。没有用的家伙。 +1 投票结束。
  • 这是一个丑陋的问题,但很清楚:我插入一个USB记忆棒,找出上面有多少可用空间,检查上面的文件内容。就是这样。如果我可以编辑,我会重写它。

标签: c usb


【解决方案1】:

要从 C 中检测插入了新的存储设备,例如 USB 笔式驱动器, 使用GetLogicalDrives();GetLogicalDriveStrings() 并查看是否检测到任何新条目。

还可以查看GetDriveInfo2 是如何实现的(它使用 WINAPI)和this Stack Overflow 问题,这是相关的,或者可能是一个骗局。

获得逻辑驱动器名称后,将其作为目录打开并枚举其中的文件,就像使用 FindFirstFile() 的任何目录一样。

【讨论】:

  • GetLogicalDrives()GetLogicalDriveStrings() 不是 C 的一部分。
【解决方案2】:

这将高度依赖于操作系统,并且还取决于您实际想要与之通信的 USB 设备类型。通常您不会直接访问 USB 驱动程序,而是通过更高级别的 API 使用它。例如。对于 USB 磁盘驱动器,您只需像通过文件系统 API 访问任何其他磁盘驱动器一样访问它,而无需关心 USB API。

USB 是一个复杂的协议栈,旨在在不同的点与主机操作系统挂钩,因此您通常不需要访问 USB API,除非您正在编写驱动程序或需要与某种非标准通信设备。

【讨论】:

    【解决方案3】:

    如果你想自己写低级,可以参考 John Hyde 的这本书:USB Design By Example

    【讨论】:

      猜你喜欢
      • 2019-12-19
      • 2014-02-28
      • 1970-01-01
      • 2011-01-22
      • 1970-01-01
      • 2018-08-18
      • 1970-01-01
      • 2014-11-07
      • 2011-02-12
      相关资源
      最近更新 更多