1

我正在尝试使用AT90USB162 Atmel 芯片作为通信设备类 (CDC) 来将一些外部传感器与一些 Windows 应用程序通信。

该芯片的 Atmel 应用笔记站点中,我找到了应用笔记AVR296:AVRUSBRF01 USB RF 加密狗用户指南,其中描述了将此芯片用作 CDC 的方法(用于RF目的,但这不是这里的问题)。此应用笔记附带压缩文件AVR296.zip,其中包含.a90用于烧录芯片的.inf文件和用作 Windows 驱动程序的文件。

所以我用提供的AVRUSBRF01-AT90USB162-usbdevice_cdc_rf-2_0_1.a90文件烧掉了我的芯片,并在我的 Windows 上安装了at90usbxxx_cdc.inf驱动程序。最后Windows成功识别了COM端口,现在我正在尝试通过CDC机制与芯片进行通信。

那么,是否有一个标准的命令列表可以与作为 CDC 的 Atmel 的微芯片一起使用?

我想做的是在 C++ 中,在 Windows 中,用于访问通过 USB 连接的微芯片以读取特定引脚状态的常驻应用程序,例如:

ComPort1->WriteStr("read?\n");
Response : String;
ComPort1->ReadStr(Response, 50);
4

1 回答 1

0

由于没有人回答,我也在其他论坛上问过,并将在此处发布回复以供 SO 社区的知识。

起初,答案是否定的。然而...

来自avrfreaks,感谢@glitch:

cdc 代码只是 AVR 方程的一半。cdc 代码所做的只是模拟 cdc 设备,因此您的 pc 代码可以与设备交互,就好像它通过串行端口连接一样。您现在需要在 AVR 上编写自己的代码,该代码与 cdc 代码链接,实现您想要的任何协议以及您想要的任何功能。cdc 代码不执行此操作。【你还需要写pc端。或者,如果您实现的协议是基于 ascii 的,您可以使用标准终端应用程序]

感谢@dakk64:

是一个菜单驱动界面的示例,实现为原型线程,但您可以将其放入主循环中。

由于有 874 个 LOC,我不会在这里发布整个代码,但你可以去那里看看。

所以它不是那么简单,没有默认列表(例如,旧的 AT 调制解调器代码),但知道这是一个开始。

于 2011-11-22T00:23:02.620 回答