开发环境
操作流程:
一个主机,3个从机,主机选择从机1连接工作30秒然后断开,再连接从机2工作30秒断开,如此循环。开发板间的距离在30cm左右!
当某次连接从机的时候先进入:
case GAP_LINK_ESTABLISHED_EVENT:{Util_stopClock(&startLinkEstClock);if (pEvent->gap.hdr.status == SUCCESS){state = BLE_STATE_CONNECTED;connHandle = pEvent->linkCmpl.connectionHandle;procedureInProgress = TRUE;// If service discovery not performed initiate service discoveryif (charHdl == 0){Util_startClock(&startDiscClock);}
然后马上就进入terminate event:
case GAP_LINK_TERMINATED_EVENT:{state = BLE_STATE_IDLE;connHandle = GAP_CONNHANDLE_INIT;discState = BLE_DISC_STATE_IDLE;charHdl = 0;procedureInProgress = FALSE;keyPressConnOpt = DISCONNECT;scanIdx = -1;// Cancel RSSI readsSimpleCentral_CancelRssi(pEvent->linkTerminate.connectionHandle);zhu
主机这边的到的信息是pEvent->linkTerminate.reason = 0x3e ,并且一对一通讯,其它的从机断电不工作就不会出现以上情况。
Viki Shi:
CONNECTION FAILED TO BE ESTABLISHE ,怀疑链路质量不行,或者不要同时发信息
user6313700:
回复 Viki Shi:
不要同时发信息是什么意思?比如说广播的间隔每台从机设置成不同的?我一次只和一台从机进行通信,不存在同时发信息的情况。我是连接一台从机工作30秒断开,再去连接另一台再工作30秒!
Viki Shi:
回复 user6313700:
不要激动,MAX_NUM_BLE_CONNS 你定义的多少?
user6313700:
回复 Viki Shi:
我这边主机设置的 min 是8*1.25 , max 是10*1.25 ,从机使用主机的连接参数, 不跟新。
user6313700:
回复 Viki Shi:
sorry 看错了,,我这边主机是3,从机设置的是1
Viki Shi:
回复 user6313700:
你用multirole测过吗?
user6313700:
回复 Viki Shi:
没有测试过,我这边主机是central 工程,从机的话是peripheral。我们主机的应用开发就在central 上就进行的
Viki Shi:
回复 Viki Shi:
加大heap size试试,HEAPMGR_SIZE
user6313700:
回复 Viki Shi:
user6313700:
回复 Viki Shi:
#include <xdc/std.h>
#define HEAPMGR_CONFIG 0x80
#include <ti/sysbios/heaps/HeapCallback.h>extern const ti_sysbios_heaps_HeapCallback_Handle heap0;
#define HEAPMGR_SIZE 0x0
extern int xdc_runtime_Startup__EXECFXN__C;
extern int xdc_runtime_Startup__RESETFXN__C;
请问是修改这里吗?