我正在尝试了解 Android 开放式附件,因为我是 ARM 编程的新手。所以我想把所有东西都从头开始,使用免费的开源工具和代码。
- 编译器:yagarto GNU ARM
- NXP LPC1768 演示板:来自一家名为“waveshare”的公司
- USB 驱动程序示例:NXP hostlite
- 安卓手机为NEXUS 4,安卓4.2.2版本
参考示例 NXP hostlite 小而清晰。但我无法在我设计的代码中正确设置附件。
描述:
- 插入检测,USB复位----OK
- 读取设备描述符----OK
- 将地址设置为1,将maximum-pakcet-size更改为64 ----- OK
- 读取协议,它返回 0x0002 。这意味着支持 AOA v2。 - - 好的
- 写识别字符串,其中5个,-----确定
- 设置附件模式。我可以看到在我的日志打印输出中有一个端口断开连接,然后是一个端口连接中断通知,----所以看起来这个命令也可以
- 但是当我现在尝试读取设备描述符时,它会在发送 TD_SETUP 时向我返回一个 5 的完成代码。CC = = 5 表示停止或无响应。所以我无法判断VID、PID是否OK。 - - 失败
根据AOA协议,设置附件模式后,设备会重新枚举自己。
所以我的问题是:我应该怎么做重新枚举?
- 在那里等到它自己完成;我需要延迟吗?
- 还是重置设备,然后再次读取设备描述符?(我不这么认为,因为返回的 VID/PID 不正确。)
- 或者您想与我分享的任何建议。