[已解决]idf-V4.3,如何在wifi_prov之后重新初始化BLE(bluedroid)

jiangteng
Posts: 23
Joined: Wed Jan 30, 2019 7:08 am

[已解决]idf-V4.3,如何在wifi_prov之后重新初始化BLE(bluedroid)

Postby jiangteng » Fri Nov 12, 2021 2:05 am

在wifi_prov_mgr例程(bluedroid ble方式)添加如下代码,配网完成后BLE初始化失败,系统重启。注释掉wifi_prov,则可以正常运行,请问如何在wifi_prov流程完成后正常使用BLE。

Code: Select all

	//ESP_ERROR_CHECK(esp_bt_controller_mem_release(ESP_BT_MODE_CLASSIC_BT));
	esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT();
	ESP_ERROR_CHECK(esp_bt_controller_init(&bt_cfg));
	ESP_ERROR_CHECK(esp_bt_controller_enable(ESP_BT_MODE_BLE));

	ESP_ERROR_CHECK(esp_bluedroid_init());
	ESP_ERROR_CHECK(esp_bluedroid_enable());
Last edited by jiangteng on Tue Nov 30, 2021 1:35 am, edited 1 time in total.

ESP_XuLZ
Posts: 173
Joined: Fri Mar 26, 2021 6:04 am

Re: idf-V4.3,如何在wifi_prov之后重新初始化BLE(bluedroid)

Postby ESP_XuLZ » Thu Nov 18, 2021 12:08 pm

1. 在 example config 中把 WIFI_PROV_SCHEME_BLE_EVENT_HANDLE_FREE_BTDM 改为 WIFI_PROV_SCHEME_BLE_EVENT_HANDLE_FREE_BT,表示在配置网络完成后仅释放 controller 中 BT 的 memory
2. 要在 连接网络之后( xEventGroupWaitBits(wifi_event_group, WIFI_CONNECTED_EVENT, false, true, portMAX_DELAY);)
等待 8~9 秒钟左右,等待配置网络的 BLE 的相关的 deinit 过程,不然下面进行初始化时状态不对,会报错
3.之后再使用以上初始化代码

Who is online

Users browsing this forum: No registered users and 119 guests