Other Parts Discussed in Thread: CC2640
主机是cc2642,从机是cc2640,
一主6从时,可以打开notify,并进行数据传输,一主7从时,第七个从机打开notify失败。一主8从时,也是第七个从机打开notify失败。更多从机还需要其他设置吗?
for(i=0;i<MAX_NUM_BLE_CONNS;i++)
{
req.pValue = GATT_bm_alloc(connList[i].connHandle, ATT_WRITE_REQ, 2, NULL);
if ( req.pValue != NULL )
{
if(index ==SIMPLEPROFILE_CHAR1)
{
req.handle = connList[i].charHandle+1;
}
else if(index ==SIMPLEPROFILE_CHAR2)
{
req.handle = connList[i].charHandle+5;
}
req.len = 2;
req.pValue[0] = LO_UINT16(GATT_CLIENT_CFG_NOTIFY); //0x0001为开notify;
req.pValue[1] = HI_UINT16(GATT_CLIENT_CFG_NOTIFY);
req.sig = 0;
req.cmd = 0;
uint8_t status = GATT_WriteCharValue(connList[i].connHandle, &req, selfEntity);
// System_printf("Notification connHandle:%d,%d\r\n",connList[i].connHandle,i);
CPUdelay(100);//250 * 48 / 4 //6*3
if ( status != SUCCESS )
{
GATT_bm_free((gattMsg_t *)&req, ATT_WRITE_REQ);
#ifdef uart_debug
// System_printf("Notification failed:%d\r\n",i);
pStrAddr = (uint8_t*) Util_convertBdAddr2Str(connList[i].addr);
System_printf( "Notification failed:%d , %s\r\n", i,pStrAddr);
#endif
// return false;
i--;
// CPUdelay(6*3);
}
// else
// {
// // SimpleCentral_autoConnect();
// // System_printf("Notification success:%d\r\n",i);
// return true;//return use careful!
// }
}
}