各位大佬好!
我是新手入门,对于ble的gap以及gatt认知有限,多海涵。我的问题如下:
我现在基于gatt_client Demo做开发,在数据的收发遇到了问题,我连接的目标设备,连接正常,Esp32能正常接收,但是esp32发送数据一直提示失败,已知目标设备的发送和接收uuid是不一样的,不同的uuid对应的handle我试过去发送,但是还是不成功。
图中是我修改过的地方。结果如下:
请各位大佬帮忙看下我哪里弄错了。
基于gatt_client demo,蓝牙双机通讯,收发的问题
Re: 基于gatt_client demo,蓝牙双机通讯,收发的问题
write_char 返回错误状态 0x06, 协议中的解释是 ATT Server does not support the request received from the client
应该是这个 characteristic 并不支持写的方式, 你需要看下这个 characteristic 的 properties (如 gatt_client 通过 esp_ble_gattc_get_char_by_uuid 获取到 characteristic 信息的 在 char_elem_result 有 properties ) 支不支持写,支持哪种写的方式
使用 esp_ble_gattc_write_char 函数可以选择 write type
有一点是如果使用 write request 方式, esp_ble_gattc_write_char 发送的数据长度大于 MTU , 将会选择使用 write prepare request 方式,而有的蓝牙芯片可能不支持这种写的方式,参考下这个 issue: https://esp32.com/viewtopic.php?f=25&t= ... 26#p104526
应该是这个 characteristic 并不支持写的方式, 你需要看下这个 characteristic 的 properties (如 gatt_client 通过 esp_ble_gattc_get_char_by_uuid 获取到 characteristic 信息的 在 char_elem_result 有 properties ) 支不支持写,支持哪种写的方式
使用 esp_ble_gattc_write_char 函数可以选择 write type
有一点是如果使用 write request 方式, esp_ble_gattc_write_char 发送的数据长度大于 MTU , 将会选择使用 write prepare request 方式,而有的蓝牙芯片可能不支持这种写的方式,参考下这个 issue: https://esp32.com/viewtopic.php?f=25&t= ... 26#p104526
-
- Posts: 3
- Joined: Wed Nov 09, 2022 3:39 am
Re: 基于gatt_client demo,蓝牙双机通讯,收发的问题
谢谢您,昨天这个问题已经解决了,原因主机那边提供的写的特征属性值是GATT_CHAR_PROP_BIT_WRITE_NR,写的时候不需要回复,把写数据里面的那个参数换一下就行了,再次表示感谢!
Who is online
Users browsing this forum: No registered users and 60 guests