原来我使用adv_vendor例程开发mesh组网通信,现在想在这个基础上增加手机app连接发送指令进行一些配置的功能;我在原基础上增加了peripheral模块,按官方例程修改后,使用ble调试助手可以搜到广播信息,也可以连接,但是连接后一直读取服务失败导致又断开,想问一下这怎么解决。
您好,给BLE协议栈分配了多大ram,如果分配过小会有连接异常,一般分配6K够用了,尝试将BLE_MEMHEAP_SIZE增大1K或2K。
你好,我把协议栈增加到8k,还是没有什么变化。还有什么其他配置会影响吗;看打印信息连接后一直没有进入peripheralParamUpdateCB这个回调。
您好,移植BLE可以参考博客:蓝牙mesh组网实践(在mesh工程中添加BLE功能) - JayWell - 博客园 (cnblogs.com)
针对没有进入peripheralParamUpdateCB这个回调的问题,检查移植代码中有没有注册回调。
好的,谢谢。现在又遇到了一个问题,我业务代码中启用了一个定时器中断,频率是1k;中断里执行的时间大概在0.05ms;但是现在发现开启中断的时候,出现了手机连上大概一二十秒后就会断连,断连原因是超时;我在关闭中断或者把中断中的代码屏蔽掉后就不会出现断连了。我把从设备延迟改大后,测试未出现断连;想问一下我中断运行时间是远小于连接间隔的啊,为什么还是会对ble连接产生影响呢。
中断服务函数中一般不建议太多的操作,如果是调用其他函数需要加上highcode。
将连接间隔拉大一些,从设备延时也可以开启。