CC2540 的GATTServApp_ProcessCharCfg()问题。
Hello 老大们,请教个问题。
关于GATTServApp_ProcessCharCfg(),它好像只能发1 byte的数据每次。但我们需要一次发送12 byte数据到IOS的 APP。所以每次导致APP不能正确接收数据。请问有什么办法解决此类问题么?
Hi leo yi,
请仔细去看一下 GATTServApp_ProcessCharCfg()这个函数的定义, 第二个参数是发送的数据指针. 注意这是个指针, 能带任何长度的参数.
你不能只看个简单例子.
请多研究一下代码.
Hi leo yi,
如果GATTServApp_ProcessCharCfg() 不好用的话, 请尝试一下用GATT_Notification().
Hi leo yi,
GATTServApp_ProcessCharCfg() 最终会导致master那边调用一个read请求, 然后调用到keyfob这边的sk_ReadAttrCB(),
最后会到sk_ReadAttrCB()里面
case SK_KEYPRESSED_UUID:
*pLen = 1;
pValue[0] = *pAttr->pValue;
break;
注意*pLen = 1, 把这个改成你要的长度.
Hi Yan,
GATT_Notification()这个函数在哪使用?如何使用?
请参考 battservice.c里面的
static void battNotifyCB( linkDBItem_t *pLinkItem )
你好!请问接收数据用哪个API函数啊?CC2541例程看的晕头转向的……,谢谢!
请查找这个定义:
typedef struct
{
pfnGATTReadAttrCB_t pfnReadAttrCB; //!< Read callback function pointer
pfnGATTWriteAttrCB_t pfnWriteAttrCB; //!< Write callback function pointer
pfnGATTAuthorizeAttrCB_t pfnAuthorizeAttrCB; //!< Authorization callback function pointer
} gattServiceCBs_t;
其中的"pfnReadAttrCB" 就是处理接收数据.