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