Directorio de artículos
El proceso general de establecimiento de la conexión BLE
1. Antes de comenzar a conectarse con el cliente
1. ESP_GATTS_REG_EVT 注册
2. ESP_GATTS_CREATE_EVT 创建
3. ESP_GATTS_START_EVT 启动
4. ESP_GATTS_ADD_CHAR_EVT 添加特征
5. ESP_GATTS_ADD_CHAR_DESCR_EVT 添加特征描述
1) Registro: ESP_GATTS_REG_EVT
Llamar esp_ble_gap_set_device_name(char *)
para establecer el nombre del dispositivo Bluetooth;
Llame esp_ble_gap_config_adv_data(esp_ble_adv_data_t *adv_data)
para configurar los datos de transmisión;
Finalmente, llame a la suma esp_ble_gatts_create_service(esp_gatt_if_t gatts_if, esp_gatt_srvc_id_t *service_id, uint16_t num_handle)
especificada para crear el servicio (la capa inferior implementa la creación del servicio y la llamada de la función de devolución de llamada mediante una llamada). Cuando se crea el servicio, se activa la función de devolución de llamada para informar el estado y la identificación del servicio. Para adiciones posteriores y todos deben usarse. El evento se activa al mismo tiempo .gatts_if
service_id
btc_transfer_context()
profile
Service_id
included serivces
characteristics/descriptor
ESP_GATTS_CREATE_EVT
2) ESP_GATTS_CREATE_EVT
Llame esp_ble_gatts_start_service(uint16_t service_handle)
para iniciar el servicio;
Vuelva esp_ble_gatts_add_char(uint16_t service_handle, esp_bt_uuid_t *char_uuid, esp_gatt_perm_t perm, esp_gatt_char_prop_t property, esp_attr_value_t *char_val, esp_attr_control_t *control)
a llamar para agregar características (UUID de característica, permiso de atributo de descriptor de valor de característica, atributo de característica, valor de característica, byte de control de respuesta de atributo).
Desencadenantes ESP_GATTS_START_EVT
y ESP_GATTS_ADD_CHAR_EVT
eventos.
3) ESP_GATTS_START_EVT
(ligeramente)
4) ESP_GATTS_ADD_CHAR_EVT
Obtenga una llamada de valor de función esp_err_tesp_ble_gatts_add_char_descr(uint16_t service_handle, esp_bt_uuid_t *descr_uuid, esp_gatt_perm_tperm, esp_attr_value_t *char_descr_val, esp_attr_control_t *control)
para agregar un descriptor de función.
5) ESP_GATTS_ADD_CHAR_DESCR_EVT
(ligeramente)
2. Después de comenzar a conectarse con el cliente
1. CONNECT_EVT 连接
2. ESP_GATTS_MTU_EVT
3. GATT_WRITE_EVT (client)写(server)事件
4. ESP_GATTS_CONF_EVT 配置事件
5. GATT_READ_EVT (client)读(server)事件
Referencia
https://blog.csdn.net/zhejfl/article/details/85136102#comments_14573948