如何打开 USB CDC“串行”并对其进行写入/读取Windows、Linux、OS X 上的设备?
我有一个 Atmel AVR A90USBxxxx 设备,已将其配置为通过 CDC“与 USB 对话”。它的设计目的是从运行 Windows、Linux 或 OS X 的主机获取输入。
我的印象是 Linux 和 OS X 会立即识别这个 CDC 设备,并且通过一个简单的 .inf 可以告诉 Windows 计算机我的设备。应使用 usbser.sys 将 VID/PID 作为 CDC 设备打开。
我的问题是,一旦操作系统将这个 USB 设备作为串行设备打开,我如何以编程方式读取和写入该端口(对于列出的 3 个操作系统中的每一个,但 Windows 需要最详细的信息,因为我在那里完全不熟悉)
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
答案实际上取决于您打算使用哪种编程语言。在不知道您打算使用哪种语言的情况下,我无法确切地告诉您如何操作,但我可以为您指出正确的方向。
对于原型设计,我建议使用 Python 和 PySerial 模块。设置并快速编写功能原型非常容易。 Python 将在 Windows、Linux 和 OS X 上运行。这样您只需编写一次串行通信代码,就可以在所有平台上进行测试。
PySerial 文档 包含一些有关如何读取和写入端口的示例。
如果 Python 在生产中不适合您,我仍然建议您坚持使用具有跨平台串行端口库的编程语言(如果可能)。
这是一个关于 C 的跨平台串行端口库的问题: C:跨平台RS-232串行库?
The answer really depends on what programming language you intend to use. Without knowing what language you intend to use, I can't tell you exactly how to do it, but I can point you in the right direction.
For prototyping, I recommend using Python with the PySerial module. It's very easy to set up and quickly write a functional prototype. Python will run on Windows, Linux, and OS X. That way you only need to write the serial communication code once and you can test on all of your platforms.
The PySerial documentation contains some examples for how to read and write to the port.
If Python doesn't work for you in production, I would still recommend sticking with a programming language that has a cross-platform serial port library if possible.
Here's a question that was asked already about a cross-platform serial port library for C: C: cross-platform RS-232 serial library?