一、问题简介
MCU通过KT6368A用SPP透传发送1K左右的数据,手机APP显示是3个包或者4个包,但是我看手册说最大一个包是512,理论应该是两个包吧,请问这正常吗?
二、详细说明
实际测试的截图如下:使用的是安卓app测试软件测试的结果
原因分析如下:
1、当您发1K的数据给KT6368A,芯片内部串口是dma的接收,收满256个字节,就中断
然后转发spp到手机
2、但是此时串口还在不停的接收,下一个256满了之后,继续转发给spp
逻辑就是这样子,这就是解释了你为什么1K发上去,分了3包或者4包的原因
3、这里还有一个细节,蓝牙不是实时发送的,而是等待心跳包确认之后才发送,大概是10ms左右交互一次,如果当前收满256之后,还没到发送的时间,此时还会继续串口接收存到缓存,等时间到了,在一起发送到spp,所以长度是不确定的
扩展说明:
蓝牙spp,理论上最大一包的数据长度,可以达到600个字节左右,不同的手机可能略有差异
基本一包数据大于512是肯定可以的。这里分包,是我们芯片内部串口机制去分包,和spp无关
三、最后的总结
当然您需要最大的数据包,我们这边修改蓝牙程序--串口部分,也是可以做到的,加大蓝牙芯片的dma接收长度限制就可以了,很简单
但是尽量您那边能自己处理最好,app那边处理数据也很简单,这样会比较通用一点
审核编辑 黄宇
-
芯片
+关注
关注
457文章
51345浏览量
428237 -
蓝牙芯片
+关注
关注
17文章
384浏览量
46254 -
SPP
+关注
关注
1文章
18浏览量
8110
发布评论请先 登录
相关推荐
基于KT6368A芯片开发SOP8蓝牙自拍杆方案记录总结
![基于<b class='flag-5'>KT6368A</b>芯片开发SOP8蓝牙自拍杆方案记录总结](https://file.elecfans.com//web2/M00/88/F6/pYYBAGO1HPuALz_5AADpP1IHUcA754.png)
为什么一个数据包会收到两个独立的netbufs呢?
KT6368A蓝牙芯片问题回答
KT6368A蓝牙转HID键盘,蓝牙ibeacon模块方案测试板使用说明
![<b class='flag-5'>KT6368A</b>蓝牙转HID键盘,蓝牙ibeacon模块方案测试板使用说明](https://file.elecfans.com/web2/M00/70/C5/poYBAGNOQQ-AIf2MAAD9SRpptg4079.png)
kt6368A双模蓝牙芯片无法透传 可能是什么问题呢
![<b class='flag-5'>kt6368A</b>双模蓝牙芯片无法透传 可能是什么问题呢](https://file1.elecfans.com/web2/M00/A8/F6/wKgZomUiTc2AcAx2AAEEseu52N0923.png)
KT6368A双模蓝牙芯片批量生产使用主机芯片KT6358M测试很方便
![<b class='flag-5'>KT6368A</b>双模蓝牙芯片批量生产使用主机芯片<b class='flag-5'>KT</b>6358M测试很方便](https://file1.elecfans.com/web2/M00/BC/17/wKgZomWfZ9CAdFRIAAEOT75N1TU162.png)
关于KT6368A双模蓝牙芯片的BLE在ios的lightblue大数量数据测试
![关于<b class='flag-5'>KT6368A</b>双模蓝牙芯片的BLE在ios的lightblue大数量数据测试](https://file1.elecfans.com/web2/M00/BD/DF/wKgaomWndhuAMKibAAJ6mw6HxMI422.png)
KT6368A蓝牙芯片的uuid完整的是多少,以及app或者小程序开发的注意点
![<b class='flag-5'>KT6368A</b>蓝牙芯片的uuid完整的是多少,以及<b class='flag-5'>app</b><b class='flag-5'>或者</b>小程序开发的注意点](https://file1.elecfans.com//web3/M00/04/13/wKgZPGdumOmAJtIFAAA0GQomryA918.png)
评论