• 蓝牙BLE调试关于NRF connect相关信息分析


    简介

    nRF Connect是一个强大的通用工具,它允许你扫描和探索你的蓝牙低功耗(以后的蓝牙LE,也称为蓝牙4.0+版本的蓝牙规范)设备,并与它们通信。

    nRF连接还允许您的iOS设备广告作为一个外围设备,充分支持许多蓝牙SIG采用的配置文件。

    此外,nRF Connect支持北欧半导体的设备固件更新配置文件(DFU)功能,允许您更新兼容的外接设备!

    特点:

    •在所有北欧半导体供电设备上支持DFU。
    •支持来自北欧半导体的北欧Thingy™。
    •扫描并发现附近的蓝牙LE外设。
    •根据名称,制造商,服务(广告和连接)和RSSI级别筛选扫描外设。
    •解析蓝牙LE广告数据的多种格式。
    •蓝牙LE外设扫描实时RSSI图。
    •完全支持iPad,包括13.4版本的多任务处理和鼠标支持。
    •日志:包括BLE Function调用、Export Function为CSV和Text格式。
    •面向隐私:完全公开nRF Connect持有的扫描数据、广告数据和用户执行的操作。
    •可连接任意可连接的蓝牙LE智能设备。
    •发现服务、特征和描述符。
    •读写特性和描述符。
    •启用和禁用通知和指示。
    •作为蓝牙LE外围设备的广告。
    •设置蓝牙LE(外围设备)服务器,并通知/指示连接的中心。

    该APP可以实现SCANER和ADVERTER两种角色

    查看广播信息

    手机上打开nRF Connect,点击“SCAN”按钮启动扫描,这时会扫描到名为“BLET emplate”的设备,如下图所示。
    在这里插入图片描述
    在这里插入图片描述

    点击设备名称,展开广播信息
    在这里插入图片描述
    在广播信息中我们可以看到如下信息,这些信息也正是我们在广播初始化中配置的广播信息。

    Device Type::LE only。仅LE。
    Flags:GeneralDiscoverable,BrEdrNotSupported。一般可发现模式,不支持BR/EDR。
    Appearance:[O]Unknown。外观的编码为O,即未知设备。
    Complete Local Name:BLE Templete。本地设备名称。
    
    • 1
    • 2
    • 3
    • 4

    如果我们需要查看具体的,点击“RAW”打开数据窗口,如下图所示。
    在这里插入图片描述
    将广播数据取出,整理如下表所示,从中可以很方便地看到广播各个字段的含义以及广播数据长度。其中类型是由SG定义,可以在SIG网站上查到,网址如下:
    https://www.bluetooth.com/specifications/assigned-numbers/generic-access-profile

    在这里插入图片描述

    点击“CONNECT”按钮,连接设备,连接成功后,nRF Connect上可以看到本文BLE工程模板中只包含了2个必须包含的服务:GAP服务和GATT服务。
    在这里插入图片描述
    点击服务名称即可展开服务,展开后可以看到服务中包含了哪些特征以及这些特征的属性。

    下图是展开后的GAP服务,GAP服务包含了4个特征,
    特征名称右边的向上的箭头是“写”按钮,点击后可以写从机的特征值向下的箭头是“读”按钮,点击后可以读出从机的特征值。下图中GAP的4个特征已经全部读出,可以看到读出的数值和我
    们在程序中配置的数值是一致的。
    在这里插入图片描述
    在这里插入图片描述
    设备名
    设备名称仅起识别设备的作用,在用户界面显示为“Bluetooth Device Name”。
    设备名最长可达248个字节,但是对端设备可能并不能显示这么长的名称。
    设备名支持UTF-8编码,因此设备名可以使用中文。

    设备外观
    设备外观仅起识辅助别设备的作用,在用户界面显示为一个图标或一个字符串。
    设备外观为一个2字节数,扫描设备可以通过设备外观值为设备分配一个合适的图标或描述。

    断开连接操作

    点击nRF Connect上的“DISCONNECT”按钮即可断开连接,断开后,系统重新进入广播模式。

    监听操作-蓝牙设备发送到APP的数据

    • 数据从从设备端发送到APP端
    • 点击图标”↓↓↓“后,APP后台自动监听从设备notify上来的数据,右滑界面,可以看到接收到的每条数据
    在这里插入图片描述
    在这里插入图片描述
    设备BLE_UARTAPP发布了服务UUID=0x000a,特征值UUID=0x000c为可写操作(点击图标”↑“),特征值UUID=0x000b为可监听操作(点击图标”↓↓↓“),特征值UUID=0x2902为可读操作(点击图标”↓“)

    写操作

    在这里插入图片描述

    读数据

    在这里插入图片描述

    GAP和GATT服务

    如下所示:在这里插入图片描述
    这里的“GAP”,跟我们蓝牙协议栈框架里面的GAP可不是一回事,这里的GAP是一个service,而蓝牙协议栈里面的GAP是一个子协议;GATT也是同样的道理。为了不引起混淆,nRF connect把这里的GAP服务称为“Generic Access”服务,把这里的GATT服务称为“Generic Attribute”服务。“Generic Access” 服务包含Device name,Appearance,PPCP以及CAR等characteristic。 “Generic Attribute”服务包含Service Change等characteristic。

  • 相关阅读:
    java毕业设计盘山县智慧项目管理系统源码+lw文档+mybatis+系统+mysql数据库+调试
    dubbo漫谈(一)
    实现一个简单的前后端交互页面
    知识点总结 2022-8-15
    进程互斥的软硬件实现方法
    光源基础(2)——光的强度、波长、颜色合成与互补关系
    springboot 点滴(3)springboot ThreadLocal实现单机权限认证
    一个简单的HTML网页 个人网站设计与实现 HTML+CSS+JavaScript自适应个人相册展示留言博客模板
    常用傅里叶变换表
    Javascript中setTimeout设置为0的意义?
  • 原文地址:https://blog.csdn.net/qq_32348883/article/details/126816301