Page 1 of 1

[已解决] 蓝牙spp出现问题

Posted: Wed Nov 03, 2021 12:29 pm
by Cyclone
使用蓝牙的spp程序时,出现问题如下:

Code: Select all

W (446897) BT_GATT: attribute value too long, to be truncated to 20

Re: 蓝牙spp出现问题

Posted: Thu Nov 04, 2021 1:24 am
by ESP_XuLZ
这是写的属性值太长而 MTU 太小造成的,APP 上应该有交换 MTU 的选项,默认应该是23, 把它调大些

Re: 蓝牙spp出现问题

Posted: Thu Nov 04, 2021 3:31 am
by Cyclone
ESP_XuLZ wrote:
Thu Nov 04, 2021 1:24 am
这是写的属性值太长而 MTU 太小造成的,APP 上应该有交换 MTU 的选项,默认应该是23, 把它调大些
请问ESP32可以主动设置手机APP的MTU吗?有想过的接口吗?

Re: 蓝牙spp出现问题

Posted: Thu Nov 04, 2021 3:42 am
by ESP_XuLZ
如果 esp32 作为 client, 手机作为 server, 可以使用 [esp_ble_gattc_send_mtu_req](https://docs.espressif.com/projects/esp ... t8uint16_t) 进行交换 mtu

Re: 蓝牙spp出现问题

Posted: Thu Nov 04, 2021 5:37 am
by Cyclone
ESP_XuLZ wrote:
Thu Nov 04, 2021 3:42 am
如果 esp32 作为 client, 手机作为 server, 可以使用 [esp_ble_gattc_send_mtu_req](https://docs.espressif.com/projects/esp ... t8uint16_t) 进行交换 mtu
我想问的是esp32作为 server的时候,有这样的接口吗?

Re: 蓝牙spp出现问题

Posted: Thu Nov 04, 2021 5:59 am
by ESP_XuLZ
没有,蓝牙规范GATT 协议中定义的也是 client 发起交换 MTU 的请求,server 可以使用 esp_ble_gatt_set_local_mtu() 设置自己本地的 MTU
exchange MTU.png
exchange MTU.png (18.68 KiB) Viewed 7083 times

Re: 蓝牙spp出现问题

Posted: Thu Nov 04, 2021 6:52 am
by Cyclone
感谢,我知道了