如何以编程方式将 CDC 模式下的 Android USB 设置为设备?

How to set Android USB in CDC mode as a device programatically?

我在 STM32L4 控制器上实现了 USB 主机 CDC 协议结构,我想将其连接到 Android Phone。我希望在设备模式下 Android 到 运行(不是在 UsbSerial 库使用的主机模式下!)CDC class 以便它的 USB 协议 Class 代码可以匹配 STM32 的 USB Class 代码,但是当我连接它时 phone 我的 phone 没有像 CDC/ACM 那样为我提供任何选项。 它只显示:

  1. 仅充电。 (Class代码:0xFF)
  2. 中期计划。 (Class代码:0x8)
  3. PTP。 (Class代码:0x6)

那么,有什么方法可以通过编写应用程序将 Android 切换到 CDC 作为设备模式吗?

另外,在我的主机端实现AOA协议可以解决这个问题吗?

是 为了在 android 作为设备模式时与主机通信,您应该在主机微控制器上实施 AOA 协议以与 android phone 通信。或者你可以检查这个选项 http://www.ftdichip.com/Products/ICs/FT311D.html