工具与软件:
您好!
CCS 版本:12.7.1.
SDK 版本:8.10.01.02
项目: basic_ble
SYSCONF:
启用的外设+中心角色。
Сonnect 将设备移至中央设备。
此连接器件使用 CC2642微控制器。
正在获取发现参数。
读取接收到的特征指针的值(器件状态)。
在一个特定数量的读取(210-230)后、我收到一个错误、指向接收数据的指针为 NULL。
我已重置 CC2340并重新配置堆栈。 之后、一切都会重复。
问题可能是什么?
同时、BLE 堆栈将正常工作、因为我们已通过 BLE 与 CC2340建立连接。
GATT 事件处理程序的代码
静态空 GATT_eventhandler (uint32事件、BLEAppUtil_msgHdr_t * pMsgData)
{
gattMsgEvent_t *gattMsg =( gattMsgEvent_t *)pMsgData;
uint8_t channel = Connection_getConnIndex (gattMsg->connHandle);
attReadByTypeReq_t req;
如果((channel == LL_INACTIVE_CONNECTIONS)||(channel == ble_channel_peripheral))
返回;
if (gattMsg->HDR.status == bleNotConnected)
返回;
开关(事件){
案例 BLEAPPUTIL_ATT_MTU_UPDATD_EVENT:
/* */
休息;
案例 BLEAPPUTIL_ATT_EXCHANGE_MTU_RSP:
/* */
休息;
案例 BLEAPPUTIL_ATT_FIND_BY_TYPE_VALUE_RSP:
/* */
休息;
案例 BLEAPPUTIL_ATT_READ_BY_TYPE_RSP:
/* */
休息;
案例 BLEAPPUTIL_ATT_READ_RSP:
{
uint8_t *数据=(uint8_t*) gattMsg->msg.readRsp.pValue;
uint16_t len = gattMsg->msg.readRsp.len;
if (((data == NULL)||(len == 0)))
休息;
//阀状态
/* */
休息;
}
案例 BLEAPPUTIL_ATT_WRITE_RSP:
/* */
休息;
案例 BLEAPPUTIL_ATT_ERROR_RSP:
/* */
休息;
默认值:
休息;
}//切换
}