QT笔记:BLE库

QT笔记:BLE库

说明

QT自带蓝牙库,但是QT的蓝牙库又有很多坑,这里记录下

安装QT蓝牙库

​ 和其他模组类似,可以通过QT的维护工具进行添加,跟之前添加串口库类似。不过要注意,蓝牙库并不是独立存在,而是和NFC等组件统一在Connectivity库中。添加时需要检查仔细

安装MSVC

​ 在添加蓝牙库时需要注意,在Window中进行QT蓝牙开发,编译工具链不要使用mingw工具链。出于平台支持缘故,蓝牙库只有使用MSVC工具链进行编译才能生效,因此如果没安装MSVC工具链的在添加蓝牙库时候也可以一起添加

​ 注意光在QT上添加MSVC组件是不够的,真正的MSVC工具链还需要下载安装microsoft visual studio,并且安装时需要选择安装跟qt对于版本的MSVC工具链。例如QT中我安装了MSVC 2019 64bit的组件,那么安装VS时也需要安装对应的工具链

​ 安装时候选择C++开发,并且添加MSVC对应版本工具链(目前VS最新的是2022版本,默认的MSVC工具链也是2022的,不过QT的组件还是2019的,所有安装时需要另外添加2019版本的MSVC,上面的图是我网上找的,里面安装的不是2019),QT添加MSVC的教程网上有很多,这里只做简要说明,安装好MSVC后,QT会自动识别MSVC的配置

BLE扫描例程

​ 打开Qt Creator,我们从官方的蓝牙示例工程开始入手,在欢迎界面搜索BLE,找到BLE Scanner例程并打开

选择MSVC工具链,不要选择mingw

编译工具链配置如下:

如果提示CMake中Debug类型找不到的话,点击重新配置即可

编译运行成功

代码功能

​ BLE库要怎么用,这个网上也好,QT本身也好都有充足的资料去参考,这里我就不重复工作了。这里我总结下用这个QT库遇到的一些经验,库版本为6.6.3:

  1. QT的蓝牙库目前在Window上只能做主机进行扫描,连接,无法作为从机进行广播。Linux/安卓下都可以
  2. QT的蓝牙库目前在Window上不支持连接参数动态更新,只能在连接时固定死,或者由从机设备来发起更新。Linux/安卓下都可以
  3. QT的蓝牙库目前在任何平台上都不支持动态修改MTU,和PHY。只能从机发起
  4. QT的蓝牙库目前在任何平台上都不支持设置SCAN的interval和duration,只能设置一个timeout时间,用于管理扫描行为持续时间

demo展示

最后展示自己写的一个基本demo,用来实现BLE的透传功能

posted on 2024-07-06 10:57  不回本不改名  阅读(276)  评论(0编辑  收藏  举报

导航