各位大侠:
请问协议栈1.4.2怎么添加特征值
我使用的芯片是cc2540
谢谢!
甜甜的大香瓜:
看我个性签名档的博客地址,《CC2541之添加特征值》。
user4352921:
回复 甜甜的大香瓜:
非常感谢您的回答!
但按您的博客操作出现如下错误:
再参照阿莫的“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;
Susan Yang:
回复 user4352921:
Notify很慢的话,建议您修改最大和最小连接间隔试试
希望对您有所帮助,谢谢!