你(们)好
我正在编写一个与 OAD 模块通信的主机程序、以便让我的客户可以选择从 Windows 计算机升级电路板。
我成功地从 PC 到 CC2541进行了通信、没有任何问题。
我有一个小问题、即我无法从 CC2541获取到 PC 的通知。
在执行一些调试后、我将问题缩小到一个特定的位置。
在 OAD_TARGET.C 中、例如在函数中:
静态空 oadImgIdentifyReq (uint16 connHandle、img_HDR_t * pImgHdr)
{
uint16 value = GATTServApp_ReadCharCfg (connHandle、oadImgIdentifyConfig);
//如果启用通知
if (value & GATT_CLIENT_CFG_NOTIY)
{
gattAttribute_t *pAttr = GATTServApp_FindAttr (oadAttrTbl、GATT_NUM_ATTRS (oadAttrTbl)、
oadCharVals+OAD_char_IMG_Identify);
if (pAttr!= NULL)
值未 打开 GATT_CLIENT_CFG_NOTIFY 位
如果我将该行替换为"if (1)" 、它始终允许继续、
我在 PC 端收到通知。
这也意味着 PC 端正常。
因此、我想知道"值"是在哪里设置的、为什么它没有正确的值?
谢谢!