完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
esf-idf版本:V5.0.2
开发板型号:ESP32-WROOM-32UE、ESP32-WROVER-E 问题描述:结合蓝牙扫描与hfp ag例程时,使用esp32开发板作为hfp ag端,在ESP32-WROVER-E运行正常,但是程序烧到ESP32-WROOM-32UE后,发现ESP32-WROOM-32UE扫描到蓝牙耳机后,蓝牙耳机无法连接开发板。 连接耳机代码如下:Code: Select all static void bt_app_gap_cb(esp_bt_gap_cb_event_t event, esp_bt_gap_cb_param_t *param){ switch (event) { /* when device discovered a result, this event comes */ case ESP_BT_GAP_DISC_RES_EVT: { /* 扫描到 bt 设备, 开始检查设备是否是希望连接的 bt */ if (bt_hfp_ag_status == BT_STATUS_DISCOVERING) { filter_inquiry_scan_result(param); } break; } /* when discovery state changed, this event comes */ /* 扫描状态变化 */ case ESP_BT_GAP_DISC_STATE_CHANGED_EVT: { /* 扫描变为停止状态 */ if (param->disc_st_chg.state == ESP_BT_GAP_DISCOVERY_STOPPED) { /* 停止扫描,并且找到期望设备,开始连接 */ if (bt_hfp_ag_status == BT_STATUS_DISCOVERED) { ESP_LOGI(BT_SCAN_TAG, "Device discovery stopped."); ESP_LOGI(BT_SCAN_TAG, "hfp hf connecting to peer: %s", BtHfpAg.s_peer_bdname); bt_hfp_ag_status = BT_STATUS_CONNECTING; /* connect source to peer device specificed by Bluetooth Device Address */ esp_hf_ag_slc_connect(BtHfpAg.s_peer_bda); } /* 停止扫描,但仍然希望扫描(自定义的 bt_hfp_ag_status 处于扫描状态),重启扫描 */ else if (bt_hfp_ag_status == BT_STATUS_DISCOVERING) { // /* not discovered, continue to discover */ ESP_LOGW(BT_SCAN_TAG, "Device discovery failed, continue to discover..."); esp_bt_gap_start_discovery(ESP_BT_INQ_MODE_GENERAL_INQUIRY, 10, 0); } } else if (param->disc_st_chg.state == ESP_BT_GAP_DISCOVERY_STARTED) { ESP_LOGI(BT_SCAN_TAG, "Discovery started."); } break; } /* when authentication completed, this event comes */ case ESP_BT_GAP_AUTH_CMPL_EVT: { if (param->auth_cmpl.stat == ESP_BT_STATUS_SUCCESS) { ESP_LOGI(BT_SCAN_TAG, "authentication success: %s", param->auth_cmpl.device_name); esp_log_buffer_hex(BT_SCAN_TAG, param->auth_cmpl.bda, ESP_BD_ADDR_LEN); } else { ESP_LOGE(BT_SCAN_TAG, "authentication failed, status: %d", param->auth_cmpl.stat); } break; } /* when Legacy Pairing pin code requested, this event comes */ case ESP_BT_GAP_PIN_REQ_EVT: { ESP_LOGI(BT_SCAN_TAG, "ESP_BT_GAP_PIN_REQ_EVT min_16_digit: %d", param->pin_req.min_16_digit); if (param->pin_req.min_16_digit) { ESP_LOGI(BT_SCAN_TAG, "Input pin code: 0000 0000 0000 0000"); esp_bt_pin_code_t pin_code = {0}; esp_bt_gap_pin_reply(param->pin_req.bda, true, 16, pin_code); } else { ESP_LOGI(BT_SCAN_TAG, "Input pin code: 1234"); esp_bt_pin_code_t pin_code; pin_code[0] = '1'; pin_code[1] = '2'; pin_code[2] = '3'; pin_code[3] = '4'; esp_bt_gap_pin_reply(param->pin_req.bda, true, 4, pin_code); } break; } /* when GAP mode changed, this event comes */ case ESP_BT_GAP_MODE_CHG_EVT: { ESP_LOGI(BT_SCAN_TAG, "ESP_BT_GAP_MODE_CHG_EVT mode: %d", param->mode_chg.mode); break; } /* other */ default: { ESP_LOGI(BT_SCAN_TAG, "event: %d", event); break; } } return;} log如下:Code: Select all I (900) MY_BT_SCAN: Starting device discovery...I (2587) MY_BT_SCAN: event: 10E (2587) BT_BTC: btc_hf_cb_handler: Invalid index 56523I (2587) MY_BT_SCAN: event: 10I (2597) MY_BT_SCAN: event: 10I (2597) MY_BT_SCAN: Discovery started.I (2877) MY_BT_SCAN: Scanned device: 38:00:25:0c:11:37I (3097) MY_BT_SCAN: Scanned device: 38:00:25:0c:11:37filter_inquiry_scan_result(389) device address d8:aa:59:56:c3:6a, name OPPO Enco Free2iI (20237) MY_BT_SCAN: Found a target device, address d8:aa:59:56:c3:6a, name OPPO Enco Free2iI (20247) MY_BT_SCAN: Cancel device discovery ...I (20257) MY_BT_SCAN: Device discovery stopped.I (20257) MY_BT_SCAN: hfp hf connecting to peer: OPPO Enco Free2iW (20267) BT_BTIF: CHECK_HF_INIT: connect_init: HF AG not initialized 主要是出现“BT_BTIF: CHECK_HF_INIT: connect_init: HF AG not initialized”这个log,之前全部运行正常,但是程序烧到ESP32-WROOM-32UE后就出现这个log,然后就无法连接了,希望各位帮忙。 |
|
相关推荐
1个回答
|
|
根据您提供的信息,您在使用ESP32-WROOM-32UE开发板时遇到了蓝牙耳机无法连接的问题。以下是一些建议和可能的原因:
1. 硬件问题:首先,请确保ESP32-WROOM-32UE开发板的硬件没有损坏或存在问题。您可以尝试使用其他蓝牙设备进行测试,以排除硬件故障的可能性。 2. 蓝牙模块兼容性:ESP32-WROOM-32UE和ESP32-WROVER-E的蓝牙模块可能存在差异,导致在某些情况下无法正常连接。请查阅ESP32-WROOM-32UE和ESP32-WROVER-E的官方文档,了解它们的蓝牙模块是否完全兼容。 3. 软件配置问题:请检查您的代码和配置是否适用于ESP32-WROOM-32UE开发板。确保您使用了正确的蓝牙配置和参数。您可以尝试在ESP32-WROOM-32UE上运行其他蓝牙示例程序,以确定问题是否与特定的代码或配置有关。 4. 蓝牙协议栈版本:您提到使用的是ESP-IDF版本V5.0.2。请检查该版本的蓝牙协议栈是否支持您要连接的蓝牙耳机。如果不支持,您可能需要升级或降级ESP-IDF版本。 5. 蓝牙耳机设置:请检查蓝牙耳机的设置,确保它处于可被发现和连接的状态。此外,尝试将蓝牙耳机与其他设备配对,以排除耳机本身的问题。 6. 代码逻辑问题:您提供的代码片段不完整,无法确定是否存在逻辑错误。请检查您的代码,确保在发现蓝牙耳机后,正确执行连接操作。 综上所述,要解决这个问题,您需要从硬件、软件和蓝牙耳机设置等方面进行排查。希望这些建议能帮助您找到问题所在并解决它。 |
|
|
|
只有小组成员才能发言,加入小组>>
1138 浏览 1 评论
576浏览 6评论
477浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
461浏览 5评论
462浏览 4评论
435浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 10:59 , Processed in 0.774200 second(s), Total 46, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号