• MCU通过KT6368A用SPP透传发送1K左右的数据,手机APP显示是3个包或者4个包,但是我看手册说最大一个包是512,理论应该是两个包吧,请问这正常吗?


    一、问题简介

    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那边处理数据也很简单,这样会比较通用一点

  • 相关阅读:
    网络是怎样连接的--生成HTTP请求消息过程
    Python 基本语法
    【MySQL】表的增删改查(进阶)
    VMware安装Ubuntu以及利用vscode远程Ubuntu
    2024年度西安市科技企业孵化载体申报条件材料、时间程序
    单向 SSL 和双向 SSL 概述
    【产品设计】B端SaaS产品原则
    [红蓝攻防]MDOG(全新UI重制版)为Xss跨站而生,数据共享,表单劫持,URL重定向
    ConstraintTools...
    狂神说Docker
  • 原文地址:https://blog.csdn.net/qyvhome/article/details/134373591