ESP32 请问有人能实现WIFI和BLE共存吗?

carsonche
Posts: 10
Joined: Tue May 25, 2021 2:21 pm

ESP32 请问有人能实现WIFI和BLE共存吗?

Postby carsonche » Fri May 28, 2021 5:04 pm

请问大家有做过wifi和BLE共存吗?有人能指导一下如何实现吗?menuconfig中Software controls WiFi/Bluetooth coexistence已经开启。不知道程序如何控制。

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

Re: ESP32 请问有人能实现WIFI和BLE共存吗?

Postby ESP_Gargamel » Mon May 31, 2021 3:49 am

共存在底层自动做了,不需要用户在应用层控制。

carsonche
Posts: 10
Joined: Tue May 25, 2021 2:21 pm

Re: ESP32 请问有人能实现WIFI和BLE共存吗?

Postby carsonche » Tue Jun 01, 2021 9:27 am

为什么我初始化蓝牙后,再初始化wifi就死机了?能帮我看看代码吗?
这是蓝牙初始化
void ble_task_satart(void)
{
esp_err_t ret;
APP_DEBUG("ble_task_satart\n");

esp_bt_controller_mem_release(ESP_BT_MODE_CLASSIC_BT);

esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT();
ret = esp_bt_controller_init(&bt_cfg);
if (ret) {
APP_DEBUG("%s initialize controller failed: %s\n", __func__, esp_err_to_name(ret));
return;
}

ret = esp_bt_controller_enable(ESP_BT_MODE_BLE);
if (ret) {
APP_DEBUG("%s enable controller failed: %s\n", __func__, esp_err_to_name(ret));
return;
}
ret = esp_bluedroid_init();
if (ret) {
APP_DEBUG("%s init bluetooth failed: %s\n", __func__, esp_err_to_name(ret));
return;
}
ret = esp_bluedroid_enable();
if (ret) {
APP_DEBUG("%s enable bluetooth failed: %s\n", __func__, esp_err_to_name(ret));
return;
}

ret = esp_ble_gatts_register_callback(gatts_event_handler);
if (ret){
APP_DEBUG("gatts register error, error code = %x", ret);
return;
}
ret = esp_ble_gap_register_callback(gap_event_handler);
if (ret){
APP_DEBUG("gap register error, error code = %x", ret);
return;
}
ret = esp_ble_gatts_app_register(PROFILE_A_APP_ID);
if (ret){
APP_DEBUG("gatts app register error, error code = %x", ret);
return;
}
// ret = esp_ble_gatts_app_register(PROFILE_B_APP_ID);
// if (ret){
// APP_DEBUG("gatts app register error, error code = %x", ret);
// return;
// }
esp_err_t local_mtu_ret = esp_ble_gatt_set_local_mtu(500);
if (local_mtu_ret){
APP_DEBUG("set local MTU failed, error code = %x", local_mtu_ret);
}
xTaskCreate(BLE_Send_Task, "BLE_Send_Task", 1024, NULL, 3, NULL);
return;
}

这是wifi初始化
void wifi_station_connect_start(void)
{
esp_netif_init();
s_wifi_event_group = xEventGroupCreate();
esp_event_loop_create_default();
esp_netif_create_default_wifi_sta();
wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
esp_wifi_init(&cfg);

ESP_ERROR_CHECK( esp_event_handler_instance_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &wifi_event_handler, NULL, NULL));

ESP_ERROR_CHECK( esp_event_handler_instance_register(IP_EVENT, IP_EVENT_STA_GOT_IP, &wifi_event_handler, NULL, NULL));

ESP_ERROR_CHECK( esp_wifi_set_mode(WIFI_MODE_STA) );
ESP_ERROR_CHECK( esp_wifi_start() );

}

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

Re: ESP32 请问有人能实现WIFI和BLE共存吗?

Postby ESP_Gargamel » Wed Jun 02, 2021 2:52 am

基于哪个版本的 IDF?有没有 log?你要么给一个完整的 .c 作为附件,可以直接复现一下。
另外,你也可以参考一下 examples/bluetooth/bluedroid/ble/blufi 这个示例呢。

Who is online

Users browsing this forum: No registered users and 177 guests