适用于 Atmel 微芯片 CDC 的标准 COM 端口命令
Standard COM port commands for Atmel's microchips CDCs
我正在尝试使用AT90USB162 Atmel芯片作为通信设备类(CDC),用于将一些外部传感器通信到一些Windows应用程序。
在该芯片的Atmel应用笔记站点中,我发现了应用笔记AVR296: AVRUSBRF01 USBRF加密狗用户指南,其中描述了将该芯片用作CDC的方法(用于RF目的,但这不是这里的关注)。这个应用程序笔记伴随着压缩文件AVR296.zip,其中包含.a90
文件刻录芯片和.inf
文件用作Windows驱动程序。
所以我用AVRUSBRF01-AT90USB162-usbdevice_cdc_rf-2_0_1.a90
文件烧录了我的芯片,并在我的Windows上安装了at90usbxxx_cdc.inf
驱动程序。最后Windows成功识别COM端口,现在我尝试通过CDC机制与芯片通信。
那么,是否有一个标准的命令列表用于使用Atmel的微芯片作为cdc ?
我想做的是像在c++中,在Windows中,为一个常驻应用程序访问通过USB连接的微芯片来读取特定的引脚状态,例如:
ComPort1->WriteStr("read?n");
Response : String;
ComPort1->ReadStr(Response, 50);
由于没有人回答,我也在其他论坛上询问,并将回复张贴在这里,以获得SO社区的知识。
一开始,答案是否定的。然而…
来自avrfreaks,感谢@glitch:
cdc代码只是AVR方程的一半。所有的cdc代码所做的是模拟一个cdc设备,所以你的pc代码可以与设备交互,如果它是通过串行端口连接。你现在需要写你自己的代码,在AVR上,与cdc代码链接,实现你想要的任何协议,以及你想要的任何功能。疾控中心的代码不做这些。你还需要编写PC端。或者你可以使用一个标准的终端应用程序,如果你实现的协议是基于ASCII的]
和感谢@dakk64:
这是一个菜单驱动界面的例子,作为一个原型线程实现,但你可以把它放在你的主循环中。
由于有874个loc,我就不把整个代码贴在这里了,但是你可以去那里看看。
所以它不是那么简单,没有默认列表(例如,旧的AT调制解调器代码),但知道这是一个开始。
- 从命令行c++发送文本文件名
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 使用QProcess执行命令,并将结果存储在QStringList中
- 数组长度,为什么从命令行获取时不能使用它?
- 如果用户输入无效,如何使用字符串变量-C++重复输入命令
- clang整洁10忽略了我的NOLINT命令
- 在子目录中使用target_sources()命令时用于单元测试(qtest)的项目结构
- 如何处理linux终端中带有负号(-)的C++中的命令行参数
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 使用VS Code和CMake Tools运行自定义命令
- 如何使用ESP8266向谷歌主页发送命令
- 如何使 windows 命令提示符在C++可执行文件上显示返回值?
- 两个 COM 组件中 ENUM 的重复条目
- 未定义的引用 .. 使用 OpenCV 编译 C++ 代码时,从命令行
- 如何在C++命令行界面程序中运行 COM (.ocx) 对象.(VS2017)
- 适用于 Atmel 微芯片 CDC 的标准 COM 端口命令
- 如何配置vc++ devenv.com命令行中的Include/Lib目录