您好。
我把esp_ble_gattc_write_char这个函数放在gattc_profile_event_handler中的ESP_GATTC_NOTIFY_EVT分支中调用。
在收到ble模块发送的数据后,给ble模块回复一条信息,但是实测在ble模块没有收到我发送的数据,在麻烦看下是我处理的不对吗?谢谢。
这个函数的参数我也调整测试过,但是在模块还是收不到我发送的数据。
增加的gattc_profile_event_handler代码如下:
case ESP_GATTC_NOTIFY_EVT:
if (p_data->notify.is_notify){
ESP_LOGI(GATTC_TAG, "ESP_GATTC_NOTIFY_EVT, receive notify value:");
}else{
ESP_LOGI(GATTC_TAG, "ESP_GATTC_NOTIFY_EVT, receive indicate value:");
}
esp_log_buffer_hex(GATTC_TAG, p_data->notify.value, p_data->notify.value_len);
//测试新增发送数据到模块
uint8_t write1_char_data[10] = {49,50,51,52,53,54,55,56,57,58};
printf("send the data to the ble module %s\n", write1_char_data);
esp_ble_gattc_write_char( gattc_if,
gl_profile_tab[PROFILE_A_APP_ID].conn_id,
gl_profile_tab[PROFILE_A_APP_ID].char_handle,
sizeof(write1_char_data),
write1_char_data,
ESP_GATT_WRITE_TYPE_RSP,
ESP_GATT_AUTH_REQ_NONE);
break;
测试日志如下: