【ESP32S3学习笔记】蓝牙名称修改与断线重连设置

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

最近用ESP32做了一个蓝牙相互传输的小应用,有几个小的TIPS简单记录一下。


提示:以下是本篇文章正文内容,下面案例可供参考

一、蓝牙名称修改

以修改设备名称 增加_2为例
1、在声明中修改设备蓝牙名称

#define SAMPLE_DEVICE_NAME "ESP_GATTS_DEMO_2"

2、修改广播数据

static uint8_t raw_adv_data[] = {
    /* flags */
    0x02, 0x01, 0x06,
    /* tx power*/
    0x02, 0x0a, 0xeb,
    /* service uuid */
    0x03, 0x03, 0xFF, 0x00,
    /* device name */
    0x11, 0x09, 'E', 'S', 'P', '_', 'G', 'A', 'T', 'T', 'S', '_', 'D', 'E', 'M', 'O','_','2'};

其中0x11是后面设备名称的字节长度。
如果这里不修改,再扫描端看到的蓝牙设备名称是不正常的。

二、断线重连设置

正常蓝牙从机开启扫描之后,超时扫描以后就不会再次连接。
这里是gap阶段,设置的扫描时长。duration就是超时时间。这里可以设置的长一点

    case ESP_GAP_BLE_SCAN_PARAM_SET_COMPLETE_EVT: {
        //the unit of the duration is second
        uint32_t duration = 60000;
        esp_ble_gap_start_scanning(duration);
        break;
    }

这里是GATT阶段中出现掉线的重连配置

    case ESP_GATTC_DISCONNECT_EVT:
        connect = false;
        get_server = false;
        is_connect = false;

        uint32_t duration = 60000;

        esp_ble_gap_start_scanning(duration);
        ESP_LOGI(GATTC_TAG, "ESP_GATTC_DISCONNECT_EVT, reason = %d", p_data->disconnect.reason);
        break;

总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,蓝牙刚刚开始接触,还没有深入了解。

ESP32-S3是一款基于Espressif平台的低功耗微控制器,支持蓝牙功能。要在ESP32S3设置蓝牙服务的UUID( Universally Unique Identifier,通用唯一标识符)为128位,你需要通过它的蓝牙低功耗套件(BLE)来配置。以下是大致步骤: 1. **准备工作**: 确保已经安装了ESP-IDF(Espressif IoT Development Framework),这是官方提供的开发环境。 2. **创建新项目**: 使用`idf.py create`命令创建一个新的项目,并选择或添加必要的蓝牙相关的库组件。 3. **打开项目配置**: 进入项目根目录,编辑`project_config.py`文件,确保蓝牙功能已启用。 4. **添加服务描述**: 在`ble_app_hrs_main.c`或相应的源码文件里,找到定义服务的地方。通常会有一个`ble_service_create()`函数用于创建服务。这里你需要添加一个128位的UUID。 ```c static const ble_uuid_t service_uuid = { .data = (uint8_t[]) { /* Your 128-bit UUID in little-endian format */ }, .len = BLE_UUID_128BIT_LEN, }; ``` 5. **服务属性**: 创建服务时,指定你想设置为128位UUID的服务标识: ```c ble_gatts_char_desc_t svc_char[1]; svc_char[0].uuid = service_uuid; svc_char[0].p_uuid = NULL; // If you want to use the custom UUID instead of the default ``` 6. **编译并烧录**: 使用`idf.py build`编译程序,然后通过USB连接到ESP32S3开发板,再通过`idf.py flash`将程序烧录上去。 7. **测试**: 使用蓝牙扫描工具检查设备是否显示正确的128位UUID。 请注意,具体的UUID值需要你自己生成,可以在线工具如`UUID Generator`生成,并按照128位的标准顺序排列(通常是8-4-4-4-12)。同时,由于ESP-IDF API的具体细节可能会有更新,所以在编写代码时请查阅最新的文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔跑的Lunzi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值