蓝牙芯片XC620(ble4.0),连接由设备发送20字节以上数据,真机调试只能接受20字节数据
- 发布:2021-03-06 11:08
- 更新:2021-03-09 17:35
- 阅读:1831
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 1909
HBuilderX类型: 正式
HBuilderX版本号: 3.1.2
手机系统: Android
手机系统版本号: Android 11
手机厂商: 三星
手机机型: S20
页面类型: vue
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
setblemtu设置后 服务端26字节数据可全部接收
setblemtu设置后 服务端26字节数据可全部接收
实际结果:
前20字节数据被接受 后6字节数据丢失 无法触发特征值监听
前20字节数据被接受 后6字节数据丢失 无法触发特征值监听
bug描述:
应用插件 微信小程序转UNIAPP
设备端(蓝牙4.0)发送26字节数据 uniapp运行至手机只能接受20字节 且特征值监听只能触发一次 已调用blesetmtu且success回调
测试蓝牙5.0 uniapp运行至手机 数据接收无误
更换软件NRFconnect (蓝牙4.0)不请求MTU 26字节log打印分两次接收 请求MTU后 可一次接收26字节
4 个回复
qiushui163 (作者)
微信小程序可以用 蓝牙5.0也ok 到4.0就出问题 换NRFCONNECT调试也可以 没人遇到这种情况嘛?
qiushui163 (作者)
真机运行
微信小程序log
蓝牙4.0是这种差异 所以有常识拼包 但是后六个字节无法触发特征值监听
qiushui163 (作者)
NRFCONNECT测试 MTU23
MTU507 一次接收全部
qiushui163 (作者)
都没有遇到这个问题嘛?实在不行就要搞Android了
木杉丶
题主,你那时有弄出来吗,同样的问题设置了也是只能最大26不知道为什么,如果不设置只能20
2021-09-26 11:35
1***@qq.com
回复 木杉丶: 解决这个问题了吗?
2022-02-12 21:14
木杉丶
回复 1***@qq.com: 官方给的就是不行的,直接去市场买了个原生插件用了,原生的可以 https://ext.dcloud.net.cn/plugin?id=4945
2022-02-14 11:51
木杉丶
回复 1***@qq.com: 其实你要是用官方的也行,只是要分段发送,比如最大20就每次20字节20字节的发送,但是官方的这个东西又有个bug就是每次发送间隔太长了。要是字节数据多这分段发送就慢太多了,当然你要是不要求速率你可以直接用官方的也行,但是那个最大字节设置是没用的只能做分段发送。
2022-02-14 11:55