windows - 如何在 Windows、Linux、OS X 上打开和写入/读取 USB CDC "serial"设备?

标签 windows linux macos usb cdc

我有一台 Atmel AVR A90USBxxxx 设备,我已将其配置为通过 CDC“与 USB 通话”。它旨在从运行 Windows、Linux 或 OS X 的主机获取输入。

我的印象是 Linux 和 OS X 会立即识别这个 CDC 设备,并且使用一个简单的 .inf 可以告诉 Windows 机器我的 VID/PID 应该使用 usbser.sys 作为 CDC 设备打开。

我的问题是,一旦操作系统将此 USB 设备作为串行设备打开,我如何以编程方式读取和写入该端口(对于列出的 3 个操作系统中的每一个,但 Windows 需要最详细的信息,因为我完全不熟悉那里)

谢谢

最佳答案

答案实际上取决于您打算使用哪种编程语言。在不知道您打算使用哪种语言的情况下,我无法告诉您确切的操作方法,但我可以为您指明正确的方向。

对于原型(prototype)制作,我建议使用 PythonPySerial模块。设置和快速编写功能原型(prototype)非常容易。 Python 将在 Windows、Linux 和 OS X 上运行。这样您只需编写一次串行通信代码,就可以在所有平台上进行测试。

PySerial documentation包含一些有关如何读取和写入端口的示例。

如果 Python 在生产环境中不适合您,我仍然建议尽可能使用具有跨平台串口库的编程语言。

这里有一个关于 C 的跨平台串口库的问题:C: cross-platform RS-232 serial library?

关于windows - 如何在 Windows、Linux、OS X 上打开和写入/读取 USB CDC "serial"设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3737628/

相关文章:

c++ - GDB 报告的额外线程是怎么回事?

objective-c - 动态列出类的IBOutlets

cocoa - 如何对齐图像 CALayer 并调整其大小?

macos - 在 Macbook 中运行 Jenkins 管道时尝试连接到 Docker 守护进程时权限被拒绝

获取电子邮件哈希时出现 Windows Live Contacts API 错误 - JavaScript

windows - 批量重新打开文件

linux - bash - 禁用日志文件的最佳优雅方式

node.js - 即使用户注销后也保持 Node 处于运行状态

windows - C++编程

linux - gcc -static 会影响所有提供的库吗?