英飞凌
直播中

李娓仑

8年用户 1440经验值
私信 关注

PSOC6外设错误CY_BLE_GATT_ERR_ATTRIBUTE_NOT_FOUND的原因?

当我尝试连接到中心时,在搜索功能时出现 GATT 错误:
- opCodeCY_BLE_GATT_READ_BY_TYPE_REQ
- errorCodeCY_BLE_GATT_ERR_ATTRIBUTE_NOT_FOUND
服务搜索成功:
val.val = bleUartServiceUuid;
val.len = CY_BLE_GATT_128_BIT_UUID_SIZE;
val.actualLen = CY_BLE_GATT_128_BIT_UUID_SIZE;
param.connHandle = conn_handle;
param.value = val;
Cy_BLE_GATTC_DiscoverPrimaryServiceByUuid( param);
但在运行功能扫描时:
cy_stc_ble_gattc_read_by_type_req_t gattc_c
gattc_c.connHandle = conn_handle;
gattc_c.range.startHandle = range_service_handle。startHandle;
gattc_c.range.endHandle = range_service_handle.endHandle;
gattc_c.uuidFormat = CY_BLE_GATT_128_BIT_UUUID_FORMAT;
Cy_BLE_GATTC_DiscoverCharacteristics( gattc_c);
找到第一个特性后总是出错,这取决于什么?




                                                                                                                                                                                                                                                                                                                                                                                                        
                                                        

回帖(1)

CY_BLE_GATT_ERR_ATTRIBUTE_NOT_FOUND 错误通常表示在 GATT 操作中,客户端尝试访问的属性在服务器上不存在。在您提供的代码片段中,这个问题可能是由以下原因导致的:

1. **UUID 不匹配**:您可能正在尝试读取或写入一个在服务器上不存在的 UUID。请确保您使用的 UUID 与服务器上定义的 UUID 完全匹配。

2. **服务未正确注册**:在服务器端,您可能没有正确注册服务或特性。请检查服务器端的代码,确保服务和特性已经被正确注册。

3. **连接问题**:在尝试读取或写入之前,确保已经成功建立了连接。如果连接没有正确建立,可能会导致属性找不到的错误。

4. **错误的操作顺序**:在 GATT 操作中,通常需要按照一定的顺序进行。例如,在尝试读取或写入之前,您需要先发现服务和特性。请检查您的代码,确保操作顺序正确。

5. **数据长度问题**:在某些情况下,如果请求的数据长度与实际数据长度不匹配,可能会导致这个错误。请检查您的代码,确保请求的数据长度与服务器上的数据长度一致。

6. **属性类型问题**:在 GATT 中,属性有不同的类型,例如,只读、可写等。如果您尝试对一个只读属性进行写操作,或者对一个不存在的属性进行操作,也可能导致这个错误。

解决这个问题的步骤可能包括:

- **核对 UUID**:确保客户端和服务器端使用的 UUID 是一致的。
- **检查服务和特性的注册**:确保服务和特性已经在服务器端正确注册。
- **检查连接状态**:在进行 GATT 操作之前,确保已经成功建立了连接。
- **检查操作顺序**:确保您的 GATT 操作顺序是正确的。
- **检查数据长度和属性类型**:确保请求的数据长度与服务器上的数据长度一致,并且操作与属性类型匹配。

最后,您提供的代码片段中有一些不完整的部分,例如 `ga` 后面似乎缺少了代码。这可能是一个语法错误或者是一个未完成的代码片段。请确保您的代码是完整的,并且没有语法错误。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分