1.vs code代码回退到上一步:
方法1:在Windows中可以使用快捷键“Alt+←”实现
方法2:利用vs code界面操作,Go-Back
Windows 命令行下的 ESP-IDF编译下载工程代码的方法
(1).打开ESP-IDF 4.4 CMD界面窗口
(2).利用命令行进入工程文件目录,例如工程文件:C:\projects\hello_world(目录位置),输入cd C:\projects\hello_world 回车
(3).命令行
idf.py set-target ESP32 (设置目标ESP32器件)
idf.py menuconfig (配置SDK)
idf.py build (编译工程代码)
idf.py flash -p COM13 (向指定端口下载代码)
idf.py monitor -p COM13 (指定端口打印调试信息)
CTRL+](键盘按键)
idf.py creat-project (工程名) (创建新工程)
2.设置vs code下ESP-IDF Monitor Device的波特率。
步骤Manage-New Code update available------Command Palette 弹出对话框 搜索或选择:ESP-IDF:SDK Configuration editor(menuconfig) ,点击后弹出配置的界面:找到’idf.py monitor baud rate这一栏,即可设置波特率。
3.VS Code头文件下有波浪线,点击进入不了文件。
方法1:进入Command Palette 弹出对话框,搜索或者选择ESP-IDF:Add vscode configuration folder即可。
方法2:进入Command Palette 弹出对话框,搜索或者选择C/C++:Edit Configurations(JSON)弹出
c_cpp_properties.json文件,在’includePath’下加入头文件实际的存储位置即可。
4.vs code中嵌入ESP_IDF编译环境编译出现错误,显示No such file or directory解决方法,在对应的.c文件中修改CMakeList.txt文件,添加对应.h文件的.c文件名到idf_component_register中或者是对应.h文件的文件实际存储位置。
5.蓝牙Beacom信标广播的原理
UUID定义
Beacom信标广播中的eddystone传输在LL(链路层)中
广播包格式,如图所示
Adv Data的数据定义
Adv Data数据类型的定义
beacom信标广播eddystone接收的主要流程:
注册gap回调函数----gap设置扫描参数----扫描参数设置完成事件(回调)----扫描开始完成事件(回调)—扫描结果事件(回调)----寻找事件类型—查询结果—解析eddystone数据包—UID或URL或TLM/ETLM或EID
beacom信标广播eddystone发送的主要流程:
注册gap回调函数----合成ADV的UID(或URL或TLM等)数据包----将合成的UID数据内容和长度赋值到adv_data结构体中的服务数据变量中-----gap配置adv_data数据参数-----adv_data设置完成事件(回调)----gap开始adv_data广播
6.GATT相关流程
ATT属性和GATT通用属性的概念
GATT服务端初始化和GATT客户端初始化
GATT服务端和GATT客户端通信
GATTS回调流程
GATTC回调流程
GAP事件回调客户端
服务属性表
7.SMP安全配对绑定
配对流程
认证要求
IO能力
配对方法
SMP相关初始化
设置安全配置参数
SMP服务端GATT回调
SMP服务端GATT回调流程:
(1).注册APP–设置设备名–开启本地加密–创建属性表
(2).创建属性表–记录属性表句柄–开启服务
(3).等待虚拟连接–(若有虚拟连接)设置安全连接认证要求
SMP服务端GAP回调
SMP服务端GAP回调流程:
(1).开启本地加密完成–配置广播数据扫描响应数据–设置广播数据设置广播扫描响应–开始广播–开始广播完成–打印
(2).(若客户端连接,则客户端会发送安全请求)–服务端授予安全请求访问权限
(3).客户端和服务端交换认证要求–密钥显示通知或数字比较请求或OOB请求或密钥请求,其中OOB请求和密钥请求是输入六位的数字
(4).认证完成(密钥)–判断认证状态–打印绑定设备地址–密钥分发事件(客户端发来密钥)–打印密钥类型
SMP客户端GATT回调
SMP客户端GATT回调流程:
(1).注册APP–开启本地加密(跳转到GAP层)–开启本地加密完成–设置扫描参数–设置扫描参数完成–开始扫描
(2).GAP层,开始扫描完成–扫描结果事件–设备名匹配–(若匹配成功)停止广播–发起虚拟连接
(3).发起虚拟连接之后会创建虚拟连接–记录对方设备地址–发送最大传输单元
(4).(最大传输单元传输成功)配置最大传输单元–本地获取服务
(5).服务发现结果–记录开始和结束句柄–服务发现完成–获取特征属性表–注册通知–注册通知完成–写入指定通知的特征描述符
SMP客户端GAP回调
模拟IO功能