请问协议栈1.4.2怎么添加特征值
各位大侠:
请问协议栈1.4.2怎么添加特征值
我使用的芯片是cc2540
谢谢!
看我个性签名档的博客地址,《CC2541之添加特征值》。
非常感谢您的回答!
但按您的博客操作出现如下错误:
再参照阿莫的“BLE-CC254x-1.4.2.2Uart2Uart-出厂程序v1.3.rar”修改,可以用AmoBleTool-V1.4传输数据
但Notify很慢,大约两三秒手机才接收到,请问是什么原因
修改如下:
1、static gattCharCfg_t simpleProfileChar6Config[GATT_MAX_NUM_CONN]; 改为:static gattCharCfg_t *simpleProfileChar6Config;
2、
{
{ ATT_BT_UUID_SIZE, clientCharCfgUUID },
GATT_PERMIT_READ | GATT_PERMIT_WRITE,
0,
(uint8 *)simpleProfileChar6Config
},
改为:
{
{ ATT_BT_UUID_SIZE, clientCharCfgUUID },
GATT_PERMIT_READ | GATT_PERMIT_WRITE,
0,
(uint8 *)&simpleProfileChar6Config
},
3、bStatus_t SimpleProfile_AddService( uint32 services )使用“BLE-CC254x-1.4.2.2Uart2Uart-出厂程序v1.3.rar”中的
4、SimpleProfile_GetParameter也使用“BLE-CC254x-1.4.2.2Uart2Uart-出厂程序v1.3.rar”中的
5、SimpleProfile_SetParameter 中的case SIMPLEPROFILE_CHAR6:改为:
case SIMPLEPROFILE_CHAR6:
if ( len <= SIMPLEPROFILE_CHAR6_LEN )
{
VOID osal_memcpy( simpleProfileChar6, value, len );
simpleProfileChar6Len = len;
// See if Notification has been enabled
GATTServApp_ProcessCharCfg( simpleProfileChar6Config, simpleProfileChar6, FALSE,
simpleProfileAttrTbl, GATT_NUM_ATTRS( simpleProfileAttrTbl ),
INVALID_TASK_ID, simpleProfile_ReadAttrCB );
}
else
{
ret = bleInvalidRange;
}
break;
6、simpleProfile_ReadAttrCB 中的SIMPLEPROFILE_CHAR6_UUID改为:
case SIMPLEPROFILE_CHAR6_UUID:
*pLen = simpleProfileChar6Len;
VOID osal_memcpy( pValue, pAttr->pValue, simpleProfileChar6Len );
{
// 这个变量用于表明上一次写数据到从机已经成功, 可用于判断写数据时的判断, 以确保数据的完整性
extern bool simpleBLEChar6DoWrite2;
simpleBLEChar6DoWrite2 = TRUE;
}
break;
7、static void simpleProfileChangeCB( uint8 paramID )中的case SIMPLEPROFILE_CHAR6:改为:
case SIMPLEPROFILE_CHAR6:
SimpleProfile_GetParameter( SIMPLEPROFILE_CHAR6, newChar6Value, &returnBytes );
if(returnBytes > 0)
{
SimpleProfile_SetParameter( SIMPLEPROFILE_CHAR6, returnBytes, newChar6Value );
}
break;
Notify很慢的话,建议您修改最大和最小连接间隔试试
希望对您有所帮助,谢谢!