【问题标题】:Standard COM port commands for Atmel's microchips CDCs用于 Atmel 微芯片 CDC 的标准 COM 端口命令
【发布时间】:2011-11-19 18:00:00
【问题描述】:

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

在Atmel Application Notes site for this chip 中,我找到了应用说明AVR296: AVRUSBRF01 USB RF Dongle user's guide,其中描述了一种将此芯片用作 CDC 的方法(用于RF 的目的,但这不是这里的问题)。此应用笔记附带压缩文件AVR296.zip,其中包含用于烧录芯片的.a90 文件和用作Windows 驱动程序的.inf 文件。

所以我使用提供的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);

【问题讨论】:

    标签: c++ arduino device-driver cdc atmel


    【解决方案1】:

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

    起初,答案是否定的。不过……

    来自avrfreaks,感谢@glitch:

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

    感谢@dakk64:

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

    因为有874个LOC,我就不把整个代码贴在这里了,你可以去看看。

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

    【讨论】:

      猜你喜欢
      • 2011-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-18
      • 1970-01-01
      • 1970-01-01
      • 2021-09-17
      相关资源
      最近更新 更多