一. 在pro中添加bluetooth
QT += bluetooth
二.添加对应的头文件
#include <QtBluetooth/qbluetoothglobal.h> #include <QtBluetooth/qbluetoothlocaldevice.h> //获取设备的蓝牙状态信息 #include <QtBluetooth/qbluetoothsocket.h> //进行链接蓝牙设备,读写信息 #include <QtBluetooth/qbluetoothservicediscoveryagent.h> //扫描周围蓝牙设备
三. 编写代码
1.一些初始化的工作
discoveryAgent = new QBluetoothDeviceDiscoveryAgent(); localDevice = new QBluetoothLocalDevice(); socket =new QBluetoothSocket(QBluetoothServiceInfo::RfcommProtocol); //设置通讯信息 connect(discoveryAgent,&QBluetoothDeviceDiscoveryAgent::deviceDiscovered,this,&BlueConnect::bltDevDiscover); //发现蓝牙设备后,将调用bltDevDiscover,参数为QBluetoothDeviceInfo,包括了目标设备的地址和名字以及一些其他的信息 discoveryAgent->setInquiryType(QBluetoothDeviceDiscoveryAgent::GeneralUnlimitedInquiry);//设置蓝牙扫描周围蓝牙的方式 discoveryAgent->start(); //开始扫描,并不会一直扫描,扫描一段时间后,将会停在扫描,发送扫描完成信号finish
2.链接
通过上面的QBluetoothDeviceInfo,可以得到设备的地址,通过设备的地址,建立连接,连接成功后socket会发出connected信号完成连接。 static const QLatin1String serviceUuid("00001101-0000-1000-8000-00805F9B34FB"); QBluetoothAddress Address(Items.at(0)->text().left(index)); socket->connectToService(Address,QBluetoothUuid(serviceUuid),QIODevice::ReadWrite); //建立连接
3.读写数据
读写数据调用下面两个函数就可以了
然后当读数据缓冲区中有数据时,socket会发送readyRead信号。
socket->read(); socket->write();
至此安装手机连接蓝牙的基础代码已经完成,然后再根据需求扩展自己的代码即可。蓝牙模块是(HC05),下面给出我的几个截图 完整代码下载链接及安装包
公众号:FPGA之旅