ercircle 发表于 2025-3-21 15:46:06

安卓App与Ai8051U擎天柱开发板通讯:


功能说明:
1. 初始化界面时,绑定UI控件各自事件
2. 点击刷新按钮,重新加载所有USB设备并更新spinner组件
3. 选择一个设备后点击连接按钮,建立与设备的通信链接
4. 在发送报文输入框中输入要发送的报文内容,点击发送按钮
5. 报文经过C++底层库,添加“Hello,”前缀后发送给设备
6. 设备接收到报文后返回原文,在底部显示区域展示
7. 软件打印的消息也在底部显示区域展示
8. 断开设备和软件退出时释放资源


构建界面布局:


左上角使用spinner组件显示USB-设备下拉列表
一个刷新用的按钮
一个连接设备用的按钮
一个发送报文用的输入框及按钮
一个清空日志按钮
底部ScrollView+TextView组合用于显示接收到的报文信息及软件打印消息


开发关键点:
1.注册安卓USB权限


2.注册设备vid+pid过滤器,这样插入设备会提示用户用此APP打开


3.加载三方usb-serial库(基于MIT协议)


4.待连接的设备烧录USB-CDC固件,并支持echo模式,即发送什么返回什么

最终效果截图:

完整代码见附件

xxkj2010 发表于 2025-4-11 13:52:55

求教:手机还能 通过OTG与ai8051通讯,这是什么原理?

ercircle 发表于 2025-4-11 14:25:30

xxkj2010 发表于 2025-4-11 13:52
求教:手机还能 通过OTG与ai8051通讯,这是什么原理?
Ai解释:
OTG 原理
OTG(On-The-Go)技术允许设备在没有主机(如电脑)的情况下,直接进行设备间的数据传输。
它通过一个 OTG 转接线或转接头,将手机的 USB 接口与USB从设备连接起来。
这样就可以使手机从原来的 USB 从设备角色转变为主设备角色,能够为外部设备提供电源和进行数据通信控制。


xxkj2010 发表于 2025-4-11 19:46:47

ercircle 发表于 2025-4-11 14:25
Ai解释:
OTG 原理
OTG(On-The-Go)技术允许设备在没有主机(如电脑)的情况下,直接进行设备间的数据传 ...

我以为手机的OTG接口只能读写外接U盘而已,而不能与单片机这种虚拟的USB设备通讯

ercircle 发表于 2025-4-11 20:52:54

xxkj2010 发表于 2025-4-11 19:46
我以为手机的OTG接口只能读写外接U盘而已,而不能与单片机这种虚拟的USB设备通讯 ...

U盘也是单片机开发的嘛。
话说老哥你的键盘和HID通讯共存问题解决了吗?
最近搞了个拓展库可以试用下提点建议
https://www.stcaimcu.com/thread-16791-1-1.html

xxkj2010 发表于 2025-4-12 09:54:36

ercircle 发表于 2025-4-11 20:52
U盘也是单片机开发的嘛。
话说老哥你的键盘和HID通讯共存问题解决了吗?
最近搞了个拓展库可以试用下提点 ...
你好!多谢关注!键盘和HID通讯共存问题解决了,是参考你的程序弄的。下一步有时间的话,准备折腾一下虚拟键盘鼠标+普通HID,看行不行

xxkj2010 发表于 2025-4-12 09:57:03

ercircle 发表于 2025-4-11 20:52
U盘也是单片机开发的嘛。
话说老哥你的键盘和HID通讯共存问题解决了吗?
最近搞了个拓展库可以试用下提点 ...

你的那个拓展库是用官方lib的吗?

ercircle 发表于 2025-4-12 10:18:20

xxkj2010 发表于 2025-4-12 09:57
你的那个拓展库是用官方lib的吗?

嗯,在那个基础上改的

xxkj2010 发表于 2025-4-12 13:03:25

ercircle 发表于 2025-4-12 10:18
嗯,在那个基础上改的

lib文件不是打包的用户无法修改,而只能用官方提供的函数吗?

ercircle 发表于 2025-4-12 13:12:01

xxkj2010 发表于 2025-4-12 13:03
lib文件不是打包的用户无法修改,而只能用官方提供的函数吗?

改的官方提供的代码不是lib
页: 1 [2] 3
查看完整版本: 手机APP工具开发指南--安卓篇,手机的USB-OTG 和 Ai8051U 通信 | 单片机/手机USB通信