用esp32做广播扫描蓝牙信号用到了ble_ibeacon例程,但是把代码都看完了改完了还是有些不明白的地方

腊肉larou
Posts: 4
Joined: Wed Oct 28, 2020 2:46 am

用esp32做广播扫描蓝牙信号用到了ble_ibeacon例程,但是把代码都看完了改完了还是有些不明白的地方

Postby 腊肉larou » Thu Oct 29, 2020 11:47 am

下面是我对例程做出的修改:
1.模式定义修改:IBEACON_SENDER模式改为IBEACON_RECEIVER模式了(修改宏定义#define IBEACON_SENDER 1 #define IBEACON_RECEIVER 0)
2.主函数的修改:
ESP_ERROR_CHECK(esp_bt_controller_mem_release(ESP_BT_MODE_BLE));/* 运行经典BT模式 */
esp_bt_controller_enable(ESP_BT_MODE_BLE);/*!< Run BLE模式*/
这两个地方都改成了ESP_BT_MODE_BLE模式,然后就可以永久扫描了
3.Bluetooth的使能和初始化,本来设置了bool是false
我把两个都改为了static bool bd_already_enable = TRUE static bool bd_already_init = TRUE;
就改了这一些但是现在只能扫描缺扫不到周围的蓝牙信号,我把我看了的例程放附件里发您还有哪些地方需要改吗


james_xwx
Posts: 4
Joined: Fri Oct 16, 2020 6:25 am

Re: 用esp32做广播扫描蓝牙信号用到了ble_ibeacon例程,但是把代码都看完了改完了还是有些不明白的地方

Postby james_xwx » Fri Oct 30, 2020 6:50 am

只能扫描,但是不能扫描到蓝牙信号。 这个信号是指 “RSSI” 吗

腊肉larou
Posts: 4
Joined: Wed Oct 28, 2020 2:46 am

Re: 用esp32做广播扫描蓝牙信号用到了ble_ibeacon例程,但是把代码都看完了改完了还是有些不明白的地方

Postby 腊肉larou » Fri Oct 30, 2020 10:18 am

也不确定,就是感觉是代码不对,
ESP_ERROR_CHECK(nvs_flash_init());
ESP_ERROR_CHECK(esp_bt_controller_mem_release(ESP_BT_MODE_BLE));
esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT();/*请在menuconfig中启用蓝牙以使用*/
esp_bt_controller_init(&bt_cfg);
这一部分的代码不懂 这三个子函数引导定义进去的话都是关闭的用不了,不知道需不需要用,大哥你懂这个例程/? 能帮我讲讲吗?万分感谢

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

Re: 用esp32做广播扫描蓝牙信号用到了ble_ibeacon例程,但是把代码都看完了改完了还是有些不明白的地方

Postby ESP_XuLZ » Thu Jul 01, 2021 7:18 am

1、esp_bt_controller_mem_release() 接口是释放你不使用的蓝牙模式的控制器内存,ibeacon 是基于BLE 的,所以不能使用ESP_BT_MODE_BLE 进行释放
2、没看到你上传的demo附件, 在我们esp-idf 下的ble_ibeacon 是持续扫描的。在esp_ble_gap_start_scanning(duration)中,duration= 0 意为持续扫描
3、不理解你所遇到的问题,可否在描述清晰些,或者上传一些对比样图描述下

Who is online

Users browsing this forum: Bing [Bot], Majestic-12 [Bot] and 80 guests