我现在用沁恒主机连接安森美从机,连接成功。有两个问题。
会自动断开。
如上图。断开原因8
发数据从机收不到。
代码:
static void centralRssiCB( uint16 connHandle, int8 rssi )
{
//PRINT( "RSSI : -%d dB \n", -rssi );
attWriteReq_t req;
char i;
ADC_ChannelCfg( 2 );
for(i=0;i<20;i++);
abcBuff = TouchKey_ExcutSingleConver(0x01);
if(abcBuff<168)
{
PRINT( "Key AnXia ! \n");
req.cmd = FALSE;
req.sig = FALSE;
req.handle = centralCharHdl;
req.len = 1;
req.pValue = GATT_bm_alloc(centralConnHandle,ATT_WRITE_REQ,req.len,NULL,0);
if ( req.pValue != NULL )
{
req.pValue[0] = 0x31;
if( GATT_WriteCharValue(centralConnHandle,&req,centralTaskId) == SUCCESS )
{
PRINT( "Send 31 Ok ! \n");
}
else
{
PRINT( "Send 31 Failed ! \n");
GATT_bm_free((gattMsg_t *)&req, ATT_WRITE_REQ);
}
}
}
ADC_ChannelCfg( 3 );
for(i=0;i<20;i++);
abcBuff = TouchKey_ExcutSingleConver(0x01);
if(abcBuff<168)
{
PRINT( "Key AnXia ! \n");
req.cmd = FALSE;
req.sig = FALSE;
req.handle = centralCharHdl;
req.len = 1;
req.pValue = GATT_bm_alloc(centralConnHandle,ATT_WRITE_REQ,req.len,NULL,0);
if ( req.pValue != NULL )
{
req.pValue[0] = 0x33;
if( GATT_WriteCharValue(centralConnHandle,&req,centralTaskId) == SUCCESS )
{
PRINT( "Send 33 Ok ! \n");
}
else
{
PRINT( "Send 33 Failed ! \n");
GATT_bm_free((gattMsg_t *)&req, ATT_WRITE_REQ);
}
}
}
}
我按下板子上的触摸按键就发数据。
获取的char2的特征值句柄是14,和用CC2541主机获取的一样,应该没错。
用CC2541发数据,安森美从机可以收到,而沁恒主机发的收不到。
我不明白为什么?高手支招。谢谢