7个员额/0个新员额
最后一篇文章
基姆
离线
最后一次见到:9个月2周前
加入:2019-07-25 08:44
DA14580 MTU

如果你使用通知发送数据的话,受MTU尺寸限制,每个通知的长度为20字节。

请问可以修改这个值吗?比如一包数据传输125个字节,如何操作?谢谢!

设备:
赛宾
离线
最后一次见到:7个月4周前
工作人员
加入:2017-12-14 02:48
你好, MTU是可以修改的。可改为需要的值

你好,

MTU是可以修改的。可改为需要的值

基姆
离线
最后一次见到:9个月2周前
加入:2019-07-25 08:44
我修改了,上位机对应蓝牙软件也收到返回值。但是数据发送异常

我修改了,上位机对应蓝牙软件也收到返回值。但是数据发送异常,对应的蓝牙接受软件也得做出相应得修改才行吧?

赛宾
离线
最后一次见到:7个月4周前
工作人员
加入:2017-12-14 02:48
你好,

你好,

应用程序应该不用。你用的什么 应用程序,出现什么异常?

基姆
离线
最后一次见到:9个月2周前
加入:2019-07-25 08:44
我们自己团队研发的一个应用程序,IOS和安卓系统都有

我们自己团队研发的一个应用程序,IOS和安卓系统都有,我搜索了一下工程里MTU把所有原本23的位置都换成了67,然后修改了如下函数,加了用户\u gattc\u exc\u mtu\u cmd(连接\u idx);

连接上的默认应用无效(uint8连接idx,结构gapc连接请求ind const*参数)
{

if(app_env[connection_idx].conidx!=GAP_INVALID_conidx)
{

if(user_default_hnd_conf.adv_scenario==DEF_adv_WITH_TIMEOUT)
应用程序\u轻松\u间隙\u广告\u超时\u停止();

默认的_播发_停止_操作();

应用程序prf启用(参数->控制HDL);

用户\u gattc\u exc\u mtu\u cmd(连接\u idx);

if((用户默认配置安全请求场景==DEF_SEC_REQ_ON_CONNECT)和&(BLE_APP_SEC))
{
应用程序轻松安全请求(连接idx);
}

}
其他的
{
//尚未建立连接,请重新启动广告
执行\u默认\u操作\u无效(默认\u操作\u adv);
}

返回;

}

发送出去的数据如果大于23字节,应用程序端是收不到的。发现发送缓存区的数据没有更新,还是指令交互的内容,不是这次更新的数据包

基姆
离线
最后一次见到:9个月2周前
加入:2019-07-25 08:44
你好,我进行修改MTU的部分如下:

你好,我进行修改MTU的部分如下:

静态常量结构gapm\u配置用户\u gapm\u配置={
.role=GAP\u peripal\u SLV,
.irk={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
///设备外观(0x0000-未知外观)
//按https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.gap.appearance.xml
.外观=0,
.appearance\u write\u perm=GAPM\u write\u DISABLE,
.name\u write\u perm=GAPM\u write\u DISABLE,
///最大MTU
.max_mtu=67,//23,
///仅限外围设备:*****************************************************************
///从机首选最小连接间隔,在可编程双插槽中测量(1.25ms)
///使用宏MS_TO_DOUBLESLOTS将毫秒(MS)转换为双插槽
.con_intv_min=MS_至_双插槽(10),

......

连接函数中修改:

连接上的无效用户应用程序(uint8连接idx,结构gapc连接请求ind const*参数)
{
连接上的默认应用程序(连接idx,参数);
连接状态=真;
用户\u gattc\u exc\u mtu\u cmd(连接\u idx);
应用程序\u轻松\u间隙\u参数\u更新\u启动(连接\u idx);
//诺蒂
发送类型=0;
通知计时器=0;

}

用Hollong BLE抓包的话,如附件情况:

但是空中ATT数据没有更新,还是上一条数据,不是我发的64字节数据,我在发64字节数据之前,上报了一个电量信息,是10字节。修改MTU之后,收到的ATT一直是10字节电量信息,使用的是通知

赛宾
离线
最后一次见到:7个月4周前
工作人员
加入:2017-12-14 02:48
你好,

你好,

请提供更多信息以便分析:

附上实现 通知的代码

用于 通知的特征的 价值长度是多少?

提供 通知的抓包情况