BLE4.0-->Bluetooth low energy

win7 蓝牙4.0 ble驱动_初识物联网无线通信技术之蓝牙4.0BLE协议栈 [本文属原创,转载请附上原文出处链接。]一、需要的软件工具1、BLE协议栈(BLE-CC254x-1.4.0)2、IAR开发软件(IAR Embedded Workbench8.20.2)注:1.4.0协议栈使用8.20.2的iar版本,1.3.2协议栈等使用的是8.10.4的iar版本。二、BLE协议栈安装目录下文件夹说明Accessories 一些工具和已经编译好的Hex文件此文件夹中有Bto... 阅读详情
蓝牙4.0是 蓝牙3.0+HS规范的补充,专门面向对成本和功耗都有较高要求的无线方案,可广泛用于卫生保健、 体育健身、家庭娱乐、安全保障等诸多领域。
它支持两种部署方式:双模式和单模式。双模式中,低功耗 蓝牙功能 集成在现有的经典蓝牙控制器中,或再在现有经典蓝牙技术(2.1+EDR/3.0+HS)芯片上增加低功耗堆栈,整体架构基本不变,因此成本增加有限。 单模式面向 高度 集成、 紧凑 的设备,使用一个轻量级连接层(Link Layer)提供超低功耗的待机模式操作、简单设备恢复和可靠的点对多点数据传输,还能让联网传感器在蓝牙传输中安排好低功耗蓝牙流量的次序,同时还有高级节能和安全加密连接。
优点: 低功耗、低成本、开放性(2.4GHz的频段全球开发),适应时代潮流
技术细节:
速度:支持1Mbps数据传输率下的超短数据包,最少8个八组位,最多27个。所有连接都使用 蓝牙2.1加入的减速呼吸模式(sniff subrating)来达到超低工作循环。
跳频:使用所有蓝牙规范版本通用的自适应跳频,最大程度地减少和其他2.4GHz ISM频段无线技术的串扰。
主控制:更加智能,可以休眠更长时间,只在需要执行动作的时候才唤醒。
延迟:最短可在3毫秒内完成连接设置并开始传输数据。
范围:提高调制指数,最大范围可超过100米(根据不同应用领域, 距离不同)。
健壮性:所有数据包都使用24-bit CRC校验,确保最大程度抵御干扰。
安全:使用AES-128 CCM加密算法进行数据包加密和认证。
拓扑:每个数据包的每次接收都使用32位寻址,理论上可连接数十亿设备;针对一对一连接优化,并支持星形拓扑的一对多连接;使用快速连接和断开,数据可以再网状拓扑内转移而无需维持复杂的 网状网络。
应用: 健康医疗、智能家居、物品防丢、蓝牙立体声耳机、蓝牙免提电话、蓝牙音响、HID人机交换、蓝牙游戏手柄、蓝牙3D眼镜
传统蓝牙-技术相关:
1、打开蓝牙:BluetoothAdapter.getDefaultAdapter().enable();
或:
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, 1);
2、关闭蓝牙:BluetoothAdapter.getDefaultAdapter().disable();
3、开始扫描外围设备:BluetoothAdapter.getDefaultAdapter().startDiscovery();
停止扫描:BluetoothAdapter.getDefaultAdapter().cancelDiscovery();
4、获取已经配对的设备数组:BluetoothAdapter.getDefaultAdapter().getBondedDevices();
5、蓝牙通信:
服务端:
String SPP_UUID = "00001101-0000-1000-8000-00805F9B34FB";
UUID uuid = UUID.fromString(SPP_UUID);
BluetoothServerSocket serverSocket = null;
serverSocket =BluetoothAdapter.getDefaultAdapter() .listenUsingRfcommWithServiceRecord("now", uuid);
客户端:
String SPP_UUID = "00001101-0000-1000-8000-00805F9B34FB";
UUID uuid = UUID.fromString(SPP_UUID);
BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(MainActivity.MAC);
BluetoothSocket socket = device.createRfcommSocketToServiceRecord(uuid);
BLE4.0-技术相关:
1、得到BluetoothAdapter对象:
BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
BluetoothAdapter mBluetoothAdapter = bluetoothManager.getAdapter();
2、开始扫描外围设备:
mBluetoothAdapter . startLeScan (BluetoothAdapter. LeScanCallback );在回调中得到BluetoothDevice device ;
附:若知道设备的mac可通过mBluetoothAdapter. getRemoteDevice (mac)得到设备的BluetoothDevice device ;
停止扫描:mBluetoothAdapter. stopLeScan ( BluetoothAdapter.LeScanCallback );
3、连接设备:device.connectGatt(Context,boolean,BluetoothGattCallback);得到
Blue toothGattgatt对象,可以与设备通信
4、通过修改gatt里Service、Characteristic、Descriptor的值,并结合
BluetoothGattCallback的回调方法与设备通信;
一个设备可以有多个Service,一个Service可以有多个Characteristic,一个Characteristic可以
有一个Value和多个Descriptor, 一个Descriptor有一个Value。
具体: BluetoothGattService service = gatt.getService(UUID);
BluetoothGattCharacteristic characteristic = service. getCharacteristic (UUID);
BluetoothGattDescriptor descriptor = characteristic. getDescriptor (UUID);
descriptor. setValue (byte[] byte);
gatt. writeDescriptor (descriptor);
gatt. writeCharacteristic (characteristic);
BluetoothGattCallback的回调方法:
gatt.setCharacteristicNotification(characteristic, true) ------> BluetoothGattCallback.onCharacteristicChanged
gatt.readCharacteristic(characteristic) ------------------------> BluetoothGattCallback.onCharacteristicRead
gatt.writeCharacteristic(mCurrentcharacteristic) ------------> BluetoothGattCallback.onCharacteristicWrite
连接蓝牙或者断开蓝牙 --------------------------------------------> BluetoothGattCallback.onConnectionStateChange
gatt.readDescriptor(descriptor) ---------------------------------> BluetoothGattCallback.onDescriptorRead
gatt.writeDescriptor(descriptor) ---------------------------------> BluetoothGattCallback.onDescriptorWrite
gatt.readRemoteRssi() -------------------------------------------> BluetoothGattCallback.onReadRemoteRssi
gatt.executeReliableWrite() --------------------------------------> BluetoothGattCallback.onReliableWriteCompleted
gatt.discoverServices() -------------------------------------------> BluetoothGattCallback.onServicesDiscovered
经验:
1、 通过使用if(gatt==null)来判断gatt是否被创建过,如果创建过就使用gatt.connect();重新建立连接。
但是在这种情况下测试的结果是重新连接需要花费很长的时间。
 解决办法是通过gatt = device.connectGatt(this, false, gattCallback);建立一个新的连接对象,很明显这样的速度要比上一种方法快很多
然而,多次创建gatt连接对象的直接结果是创建过6个以上gatt后就会再也连接不上任何设备,原因应该是android中对BLE限制了同时连接的数量为6个
 解决办法是在每一次重新连接时都执行一次gatt.close();关闭上一个连接。
有人说为什么不在gatt.disconnect();后加一条gatt.close();呢,原因是如果立即执行gatt.close();会导致gattCallback无法收到STATE_DISCONNECTED的状态。
当然,最好的办法是在gattCallback收到STATE_DISCONNECTED后再执行gatt.close();,这样逻辑上会更清析一些。
2、这样的解决方法(在每次connect前,检查是否已经有了Gatt对象,有了的话,就close,然后建立连接重新分配-这个方法)是没错的。真实的原因是每一次连接都会生成一个Gatt对象,每一个Gatt对象都需要断开连接,不然的话,一旦其中有一个Gatt对象没有断开连接,系统就会认为你是在连接的,让你连扫描都扫描不到这个设备,就别说继续连接了。。。。你的方法是正好保证了系统中只有一个Gatt对象,且把真实的(也就是最后的那个)给保存了起来,用于实际操作。而disconnect本身在这个算法里面就可以代替close。close和disconnect的区别在于,close除了断开连接外,还会释放掉所有资源,导致不可以直接在后面的操作中用gatt对象的connect直接连接,而disconnect并不释放资源,所以,所有的资源还保存着,就可以用Gatt的connect进行简单恢复连接,而不是在device那一层进行操作。至于为啥允许可以对一个外设连接多次,这个事情我也很纳闷,不知道什么场景需要这样的操作。。。
告别第三方工具!用Windows自带蓝牙玩转BLE设备调试(保姆级图文教程) 本文详细介绍了如何利用Windows自带的蓝牙功能进行BLE设备调试,无需第三方工具。从硬件准备、系统配置到实战操作,提供保姆级图文教程,帮助开发者高效完成设备发现、数据交互等全流程调试工作。特别适合物联网开发者和智能硬件爱好者。 阅读详情

相关推荐

解决usbdongle驱动安装不上去的问题

网上搜了资源一大圈,终于自己整理出一份解决usbdongle在win7系统上安装驱动的问题。希望对您有用。

FILCO蓝牙CSR4.0驱动安装连接(解决蓝牙连接的终极管理方法,速度极快)

关联问题: Win10蓝牙设备删除失败,蓝牙设备更新设备(终极解决方案) 解决WH1000XM3连接电脑无法使用麦克风问题 FILCO连接WIN10出现PIN问题 FILCO蓝牙CSR4.0驱动安装连接(解决蓝牙连接的终极管理方法,速度极快) 驱动下载地址 1. 安装64位CSR驱动,出现问题安装软件时出现System Pending Reboot ①在windows运行里输入r...

gdtop的个人笔记 1万+

蓝牙4.0驱动 千月蓝牙软件

千月蓝牙软件

Bluefruit LE Sniffer - Bluetooth Low Energy (BLE 4.0) - nRF51822 驱动安装及使用

BLE Sniffer https://www.adafruit.com/product/2269 Bluefruit LE Sniffer - Bluetooth Low Energy (BLE 4.0) - nRF51822 nrf51822模块 https://cdn-shop.adafruit.com/product-files/2267/MDBT40-P256R.pdf 驱动安装 ...

feiwatson的博客 4208

Win8 蓝牙4.0 驱动/组件包

Each subdirectory contains driver sample files specifically designed to work with devices that implement the blood pressure profile, heart rate profile, thermometer profile, and TI CC2540 keyfob respectively, as defined in the Bluetooth 4.0 – Bluetooth Low Energy specification

蓝牙驱动(适用于win7)

蓝牙驱动(适用于WIN7)

Windows 蓝牙驱动开发-BLE低功耗

蓝牙的版本为1.0 ~5.2版本,蓝牙1.0~3.0都是经典蓝牙(rfcomm)。蓝牙4.0的蓝牙芯片都是双模的,既包括经典蓝牙也包括低能耗蓝牙。蓝牙BLE相比于经典蓝牙的优点是搜索、连接的速度更快,关键就是BLE都是低能耗,缺点是传输的速度慢,传输的数据量也很小,每次只有20个字节,但BLE因为其低能耗的优点,在智能穿戴设备和车载系统上的应用越来越广泛。注意,在windows平台,经典蓝牙编程和BLE编程分别是两个概念,蓝牙API是使用经典蓝牙进行开发,而BLE则是在winrt中集成。

王马的博客 1369

Win7连接蓝牙4.0鼠标

为了便携,买了个小米无线鼠标。有两种模式,一种是插无线收发器,一种是蓝牙。插收发器倒是没任何问题,但是占一个USB口总是不爽。蓝牙模式很奇怪,在家里的Win10电脑可以连,但是办公用的Win7电脑就是搜不到鼠标。 查了很多资料,主要有几种说法: 1、说电脑没有蓝牙的、蓝牙模块不是4.0的、硬件不支持什么的:纯是自说自话。 2、还有说Win7就是不支持,Win8以上才支持蓝牙4.0:接近真相了,但原因还是不准确。 3、蓝牙4.0采用BLE技术(Bluetooth Low Energy 蓝牙低能耗技术),但是其驱动程序没有包括在Win7系统内,而是从Win8开始带有BLE驱动:真相在此。 关键是I

mac 更换默认蓝牙适配器_Win7连接低功耗蓝牙(BLE)鼠标

前段时间出差没带鼠标接收器,不过还好我的罗技M590鼠标支持蓝牙连接,但是win7系统的电脑却死活搜索不到鼠标, 经过一番搜索,终于找到了问题的原因,原来蓝牙鼠标需要蓝牙的低功耗技术,而win7默认是不支持的。这个蓝牙低功耗技(BLE)是蓝牙4.0+的重要特性,win8之后系统才开始带有BLE驱动,这就是为什么鼠标在win10系统用的好好的,但是在win7不能用的原因。找到了原因,就离解...

weixin_39940788的博客 1182

Bluetooth.zip_ble4.0_windows BLE_windows ble调试_windows 蓝牙_蓝牙

在windows平台上进行BLE4.0蓝牙链接扫描数据传输等应用开发

CC2540 USBDongle驱动-Cebal驱动.zip

CC2540 USBDongle驱动_Cebal驱动。使用方法:设备管理器→右键“CC2540 USBDongle”选择“更新驱动程序”→“浏览计算机本地的驱动目录”

Bluetooth Low Energy 介绍 低功耗蓝牙介绍

1.简介 BLE(Bluetooth Low Energy,低功耗蓝牙)是对传统蓝牙BR/EDR技术的补充。尽管BLE和传统蓝牙都称之为蓝牙标准,且共享射频,但是,BLE是一个完全不一样的技术。BLE不具备和传统蓝牙BR/EDR的兼容性。它是专为小数据率、离散传输的应用而设计的。通信距离上也有改变,传统蓝牙的传输距离几十米到几百米不等,BLE则规定为100米。 2.低功耗蓝牙(BLE)

hundred_to_thousand的专栏 4629

Win11上WSL2安装Ubuntu22.04避坑指南:从镜像源到C++环境配置

本文详细介绍了在Win11系统上安装和配置WSL2及Ubuntu22.04开发环境的完整流程与避坑指南。内容涵盖从解决网络安装错误、更换国内镜像源以加速软件更新,到一站式配置C++开发工具链(包括GCC、GDB、CMake等),并提供了提升WSL2使用体验的实用技巧和故障排除方法,帮助开发者高效搭建稳定的Linux开发环境。

weixin_29306261的博客 474

win7 蓝牙4.0 ble驱动_低功耗蓝牙时代,纽扣电池寿命可达十年

根据蓝牙技术联盟(Bluetooth SIG)的预测,到2023年,蓝牙设备的年度总出货量将增加到54亿个,年增长率达到26%,那时90%的蓝牙设备都将支持低功耗蓝牙(BLE,Bluetooth Low Energy)。到2024年,低功耗蓝牙单模设备累计出货量将达到75亿。面对低功耗蓝牙蓝海,更低功耗是厂商们追求的标准之一。Silicon Labs作为最早支持蓝牙5.0和5.2标准产品的厂商之一...

weixin_39713763的博客 1039

WOL唤醒配置(以太网、PHY、MAC)

MAC 就是以太网控制器,属于OSI的数字链路层。phy 属于OSI的物理层(Physical layer),所以叫phy。CPU Mac与phy通信通过MII接口,数据的传输通过MDIO数据线。通过配置phy的相关寄存器实现不同的功能。

qq_58264156的博客 8631

OCR模型轻量化新思路:用ONNX Runtime加速PP-OCRv4推理(附性能对比测试)

本文详细介绍了如何利用ONNX Runtime对PP-OCRv4模型进行轻量化部署与推理加速。通过模型导出优化、动态量化、线程绑定及内存复用等技巧,在树莓派、RK3588等边缘设备上实现了超过50%的性能提升,并显著降低了内存占用,为移动端OCR部署提供了完整的优化方案和实测数据对比。

weixin_29063979的博客 496

win7蓝牙驱动的使用方法

大家知道win7系统不管是台式机还是笔记本,一般都是支持蓝牙使用的。但还是有一些用户换不清楚电脑上蓝牙的使用。不知道win7蓝牙驱动怎么使用?下面,小编给大家介绍下win7蓝牙驱动怎么使用,希望可以帮到大家。一起去看看吧! 步骤一:在win7 64位旗舰版的桌面,鼠标右键点击“计算机”打开菜单,然后进入到“属性”中,点击属性菜单中的“设备管理器”,这时候我们就可以看到win7系统中的蓝牙设备是否

maoxiaojiemaoxiaojie的博客 8562

el-upload自定义上传dwg/dxf文件并且携带额外参数(CAD)

需求:需要使用el-upload自定义上传cad的图片或普通图片,这边需要判断区分下,以及上传后清空上传文件列表。

请叫我欧皇!的博客 1535

win7 蓝牙4.0 ble驱动_恩智浦发布行业领先的2x2 Wi-Fi 6 +蓝牙解决方案,彻底改变游戏、音频、工业和物联网市场...

原标题:恩智浦发布行业领先的2x2 Wi-Fi 6 +蓝牙解决方案,彻底改变游戏、音频、工业和物联网市场恩智浦半导体(NXP Semiconductors N.V.)近日宣布推出2x2 Wi-Fi 6 ()双频段+蓝牙/BLE解决方案系列,为先进的游戏、音频、工业和物联网市场开启连接创新的新篇章。经过优化的恩智浦IW62X产品系列为全球首款启用Wi-Fi 6的游戏机提供支持,将为下一代连接解决...

weixin_39636245的博客 339

第二十届全国大学生智能汽车竞赛极速光电组:MicroPython与恩智浦RT1021的硬件编程实战指南

本文为参加第二十届全国大学生智能汽车竞赛极速光电组的同学提供了一份详尽的MicroPython与恩智浦RT1021硬件编程实战指南。文章深入剖析了选择MicroPython与RT1021这对组合的优势,详细讲解了从开发环境搭建、基础硬件控制(如GPIO、PWM、编码器、CCD)到系统集成(平衡控制、循迹算法)与多任务调试的全过程,旨在帮助参赛者降低嵌入式开发门槛,高效备赛。

wdx0123456的博客 843

华为OD机试2025C卷 - CPU调度策略 (C++ & Python & JAVA & JS & GO)

华为OD机试 2025C卷 CPU调度策略,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解

qq_45776114的博客 1296

蓝牙4.0BLE抓包(一) - 搭建EN-Dongle工作环境 使用EN-Dongle抓包 nRF51822

版权声明:本文为博主原创文章,转载请注明作者和出处。 蓝牙4.0 BLE的开发过程中,使用抓包器进行抓包分析无疑会极大地提高我们的开发效率,同时能帮我们快速的定位问题。对于初学者来说,抓包分析能让我们更快的理解蓝牙4.0 BLE的工作过程。 本文详细说明如何搭建EN-Dongle的抓包环境和如何使用EN-Dongle进行抓包。EN-Dongle抓包时会通过Sn...

a547155971的博客 574

GIS数据处理-使用PostGIS+QGIS

GIS数据处理1-使用PostGIS+QGIS 介绍 这里我遇到了一个需求,需要将SQLite的.db数据库中GIS数据导出成shapefile文件 数据库的表结构如下所示,这里存储的是wkt格式的矢量数据 WKT与WKB格式介绍 OpenGIS 规范定义了两种表示空间对象的标准方式:Well-Know Text (WKT) 形式和Well-Known Binary(WKB) 形式。WKT 和 WKB 都包含矢量几何要素的对象类型和构成对象的坐标的信息。WKT可读性强,更方便阅读识别,而在实际数据传输和存

孙霸天的专栏 2528

DW1707 蓝牙 Qualcomm QCA9565 Bluetooth 4.0 驱动安装

DW1707驱动安装

qq_27826857的博客 2385

AI摄影师:自动构图与修图算法设计

AI摄影师:自动构图与修图算法设计​ ,人工智能,计算机视觉,大模型,AI,AI 摄影师的核心能力体现在两方面:自动构图(通过算法优化画面元素布局)与智能修图(自动调整光影、色彩、细节)。例如,手机摄影中的 “AI 构图建议” 功能可实时框选最佳拍摄区域,修图软件中的 “一键增强” 能在 0.1 秒内完成专业级调色,这些都依赖于计算机视觉与深度学习的深度融合。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 16万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: 自定义ViewGroup相关
下一篇: Values-国际化语言
nowlf_android
博客等级 码龄15年 2粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值