我現(xiàn)在用沁恒主機(jī)連接安森美從機(jī),連接成功。有兩個(gè)問(wèn)題。
會(huì)自動(dòng)斷開(kāi)。
如上圖。斷開(kāi)原因8
發(fā)數(shù)據(jù)從機(jī)收不到。
代碼:
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);
}
}??
}
}
我按下板子上的觸摸按鍵就發(fā)數(shù)據(jù)。
獲取的char2的特征值句柄是14,和用CC2541主機(jī)獲取的一樣,應(yīng)該沒(méi)錯(cuò)。
用CC2541發(fā)數(shù)據(jù),安森美從機(jī)可以收到,而沁恒主機(jī)發(fā)的收不到。
我不明白為什么?高手支招。謝謝