请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CC2650 主题中讨论的其他器件:CC2640
您好!
我有一个使用 CC2640的传感器、该传感器具有三个特征。 我需要使用串行通信从这些特征中读取数据、因为我使用的是 SPPclient 和 smarttrf06评估板的修改示例。 但是、我无法接收串行通信中三个不同特性的数据。 我已检查客户端特征配置的句柄是否正确、并使用 RetVal = GATT_WriteNoRsp (connHandle、&req)启用特征;、返回成功。 特性值的句柄也是正确的。 到目前为止,我只能从两个特性中获取数据,因此没有接收到最后启用的特性,我互换了句柄(下面的 charCCCD2Hdl 和 charCCCD3Hdl),以便在不同的时间启用它们。 我收到了当时正确启用的这两者的数据。 因此、我不知道为什么不能获取这三个特征的数据。 我也尝试使用 RetVal = GATT_Notification (connHandle、&req、0);以启用通知、但这完全不起作用。 有人可以提供帮助吗? 以下是启用通知的代码。
IF (事件和 SBC_UART_CHANGE_EVT)
{
//处理消息。
uint8返回值;
attWriteReq_t req;
uint8 configData[2]={0x01、0x00};
事件&=~SBC_UART_CHANGE_EVT;
REQ.pValue = GATT_BM_alloc (connHandle、ATT_WRITE_REQ、2、NULL);
if ((req.pValue!= NULL)&& charCCCD1Hdl)
{
REQ.Handle = charCCCD1Hdl;//数据特性的 CCCD 句柄
Req.len = 2;
memcpy (req.pValue、configData、2);
REQ.cmd = true;//对于来自服务器的 NoRsp 必须为 true (命令,而不是请求)
REQ.SIG = false;
RetVal = GATT_WriteNoRsp (connHandle、&req);
if (RetVal!=成功)
{
调试("启用通知1...\n\r\n"ERROR);
lcd_write_string ("启用通知时出错"、lcd_page4);
}
其他
{
调试("通知1已启用...\n\n");
lcd_write_string ("通知已启用"、lcd_page4);
charCCCD1Hdl = 0;
Util_startClock (&startNottiEnableClock);
}
}
if (((req.pValue!= NULL)&& charCCCD2Hdl &&!charCCCD1Hdl)
{
REQ.Handle = charCCCD2Hdl;//数据特性的 CCCD 句柄
Req.len = 2;
memcpy (req.pValue、configData、2);
REQ.cmd = true;//对于来自服务器的 NoRsp 必须为 true (命令,而不是请求)
REQ.SIG = false;
RetVal = GATT_WriteNoRsp (connHandle、&req);
if (RetVal!=成功)
{
调试("启用通知2...\n\r\n"时出错);
lcd_write_string ("启用通知时出错"、lcd_page4);
}
其他
{
调试("通知2已启用...\n\n");
lcd_write_string ("通知已启用"、lcd_page4);
}
}
if ((req.pValue!= NULL)&& charCCCD3Hdl &&!charCCCD1Hdl)
{
REQ.Handle = charCCCD3Hdl;//数据特性的 CCCD 句柄
Req.len = 2;
memcpy (req.pValue、configData、2);
REQ.cmd = true;//对于来自服务器的 NoRsp 必须为 true (命令,而不是请求)
REQ.SIG = false;
RetVal = GATT_WriteNoRsp (connHandle、&req);
//RetVal = GATT_Notification (connHandle、&req、0);
if (RetVal!=成功)
{
调试("启用通知3...\n\r\n"ERROR);
lcd_write_string ("启用通知时出错"、lcd_page4);
}
其他
{
调试("通知3已启用...\n\n");
lcd_write_string ("通知已启用"、lcd_page4);
}
}
谢谢、
全日空