Toc
  1. 本说明目录
  2. Core-BleUart
  3. Core-BleUart图赏
  4. H7PI下使用Core-BleUart
    1. 准备
    2. 烧录Core-BleUart-fw固件
    3. 兼容Grove接口
    4. 使用串口发送,使用Feasyblue接收
  • AT指令设置
    1. *Fork
    2. 功能概述
    3. BLE通信
    4. 广播Advertising
    5. Advertising Data
    6. Scan Response Data
    7. 服务Service
    8. Generic Access Service
    9. Generic Attribute Service
    10. Nordic UART Service
    11. 串口通信
    12. 串口AT指令
    13. 测试串口通信
    14. AT+RESET 复位模块
    15. AT+MAC 查询模块MAC地址
    16. AT+VER 查询模块版本信息
    17. AT+STATUS 查询模块BLE连接状态
    18. AT+DISCON 断开BLE连接
  • 4.7 AT+BAUD 配置串口波特率
    1. AT+TXPW 配置射频发射功率TX Power
    2. AT+ADV 配置广播间隔
    3. AT+CON 配置连接参数
  • Toc
    0 results found
    Pinno
    Core-BleUart

    本说明目录

    1. Core-BleUart
    2. Core-BleUart图赏
    3. H7PI下使用Core-BleUart

    Core-BleUart

    Core Modules 是一系列的功能模块,用于快速创建应用。
    Core-SensorTH是一款蓝牙串口模块,基于NRF52832,可与手机通信,为了支持Arduino快速开发,接口兼容Seeed Grove接口,可使用Arduino相关扩展板。
    获取一个 –>Core-BleUart

    Core-BleUart图赏

    示意图1
    示意图3

    H7PI下使用Core-BleUart

    准备

    1. Core-BleUart 模块
    2. H7PI
    3. H7PI_Exp_GrovePlatform
    4. H7PI_Samples
    5. Feasyblue软件(安卓Iphone均可以从应用商店获取)

    烧录Core-BleUart-fw固件

    1. 下载固件:https://gitee.com/htctek/Core-BleUart-fw
    2. 使用nrfstudio烧录softdevice(使用132,版本是14.2);
    3. 使用MDK打开第一步下载的工程,重新编译一次并烧录;
    4. 使用手机打开Feasyblue软件,可以搜索到Core52-BleUart设备。

    兼容Grove接口

    模块使用兼容Grove接口,对应引脚如下

    1 GND
    2 VCC
    3 RX
    4 TX

    使用串口发送,使用Feasyblue接收

    H7PI_Samples默认初始化uart,可以使用uart0进行数据发送接收,跟普通的串口设备使用方式无二。

    AT指令设置

    *Fork

    这里Fork,经适配,用于Core52模块

    功能概述

    本 BLE_UART 模块(以下简称为 BLE_UART )主要功能如下:

    • BLE 和串口数据转发。
    • 模块将从串口接收到的数据通过 BLE 转发出去;
    • 模块将 BLE 接收到的数据通过串口转发出去。
    • 串口 AT 指令配置模块功能。

    BLE通信

    BLE_UART 支持 BLE 4.0/4.1/4.2 通信。
    Android 4.3及以后 和 iPhone 4s + iOS 7.0及以后 的智能手机才支持 BLE 4.0,才可以与 BLE_UART 进行通信。

    广播Advertising

    广播数据包包括 Advertising Data 和 Scan Response Data。

    Advertising Data

    BLE_UART 中 Advertising Data 的 PDU 格式为 ADV_IND。
    flag 值为 0x06,表示只支持 BLE,不支持 BR/EDR,通用发现模式。
    Device Name 为设备名称。

    Scan Response Data

    Scan Response Data 中包括服务 UUID,为 128 位自定义 UUID。

    服务Service

    BLE_UART 的 profile 中包含 4 个首要服务(Primary Service),包括Generic Access Service、Generic Attribute Service、Nordic UART Service 和 Device Information Service。

    Generic Access Service

    该服务中包括Device Name、Appearance、Peripheral Preferred Connection Parameters和Central Address Resolution 4个特征值。
    服务的UUID和各个特征值的权限及UUID详见下图。

    Device Name 特征值为设备名称。
    Appearance 特征值为外观特性,本模块没有设置该值,默认值为0。
    Peripheral Preferred Connection Parameters 特征值为周边设备推荐的连接参数,本模块默认值为连接间隔10ms - 30ms,从机延迟0,监督超时72*10=720ms。该连接参数也是iOS默认的连接参数。
    Central Address Resolution 特征值为是否支持中央设备私有设备地址解析,BLE_UART 默认值为支持。

    Generic Attribute Service

    该服务为空。

    Nordic UART Service

    该服务不是SIG定义的标准服务,是用户自定义服务。服务UUID和各特征值的权限及UUID见下图。该服务中包含RX和TX 2个特征值。

    RX特征值用于将中央设备通过BLE write到本模块的数据通过串口转发出去。BLE每包write最多支持 ATT_MTU(默认值为23,可通过ATT_MTU_UPDATED事件协商更改) - 3 个字节,如果中央设备需要发送的数据超过20字节,需要中央设备分包后再write,否则会导致write失败,甚至可能导致模块重启。

    TX特征值用于将模块串口接收到的数据通过BLE以notify方式转发出去,每包最多 ATT_MTU - 3 个字节,如果串口接收到的数据超过 ATT_MTU - 3 个字节,则模块自动按照 ATT_MTU - 3 个字节分包发送。另外,如果串口接收到的数据为AT指令,则模块会进行相应的操作,并返回执行结果。注意:必须使能Notification才能将数据从本模块notify给中央设备。

    串口通信

    模块上电默认串口配置:115200bps,8位数据位,1位停止位,无校验位,无流控。
    串口每帧最多接收256字节,超过ATT_MTU(默认值为23,可通过ATT_MTU_UPDATED事件协商更改)-3个字节自动分包,支持不定帧长度,支持任意字符结尾。接收完一个字符后3ms不再接收到新的字符,则认为本帧结束。

    串口AT指令

    BLE_UART 支持的 AT 指令如下表所示。
    |命令|说明|
    |—|—|
    |AT|测试串口通信
    |AT+RESET|复位模块
    |AT+MAC|查询模块MAC地址
    |AT+VER|查询模块版本信息
    |AT+STATUS|查询模块BLE连接状态
    |AT+DISCON|断开BLE连接
    |AT+BAUD|配置串口波特率
    |AT+TXPW|配置射频发射功率
    |AT+ADV|配置广播间隔
    |AT+CON|配置连接参数
    所有AT指令(包括命令和响应)必须”AT”作为开头,以回车新行()结尾,为描述方便,文档中被有意忽略了。

    测试串口通信

    查询命令 响应 命令参数说明 响应参数说明
    AT? AT: 执行结果:
    OK - 串口通信正常

    AT+RESET 复位模块

    设置命令 响应 命令参数说明 响应参数说明
    AT+RESET AT+RESET: 执行结果:
    OK - 复位模块成功

    AT+MAC 查询模块MAC地址

    查询命令 响应 命令参数说明 响应参数说明
    AT+MAC? AT+MAC: 模块MAC地址(16进制字符串,12 Bytes)

    AT+VER 查询模块版本信息

    查询命令 响应 命令参数说明 响应参数说明
    AT+VER? AT+VER:,, 硬件版本
    协议栈固件版本
    应用软件版本

    AT+STATUS 查询模块BLE连接状态

    查询命令 响应 命令参数说明 响应参数说明
    AT+STATUS? AT+STATUS: BLE连接状态:
    1 - 已连接,
    0 - 未连接或断开连接

    AT+DISCON 断开BLE连接

    设置命令 响应 命令参数说明 响应参数说明
    AT+DISCON AT+DISCON: 断开BLE连接执行结果:
    OK - 执行成功,
    FAIL - 执行失败,
    ERP - 参数错误

    4.7 AT+BAUD 配置串口波特率

    设置命令 响应 命令参数说明 响应参数说明
    AT+BAUD= AT+DISCON: 波特率:
    0 - 4800bps,
    1 - 9600bps,
    2 - 19200bps,
    3 - 38400bps,
    4 - 57600bps,
    5 - 115200bps,
    6 - 230400bps,
    7 - 460800bps,
    8 - 921600bps
    设置串口波特率执行结果:
    OK - 执行成功,
    FAIL - 执行失败,
    ERP - 参数错误

    AT+TXPW 配置射频发射功率TX Power

    设置命令 响应 命令参数说明 响应参数说明
    AT+TXPW= AT+TXPW: 发射功率:
    0 - -40dBm,
    1 - -20dBm,
    2 - -16dBm,
    3 - -12dBm,
    4 - -8dBm,
    5 - -4dBm,
    6 - 0dBm,
    7 - +3dBm,
    8 - +4dBm
    设置发射功率执行结果:
    OK - 执行成功,
    FAIL - 执行失败,
    ERP - 参数错误

    AT+ADV 配置广播间隔

    设置命令 响应 命令参数说明 响应参数说明
    AT+ADV= AT+ADV: 广播间隔:单位0.625ms,
    最小值0x0020,最大值0x4000
    设置广播间隔执行结果:
    OK - 执行成功,
    FAIL - 执行失败,
    ERP - 参数错误

    AT+CON 配置连接参数

    设置命令 响应 命令参数说明 响应参数说明
    AT+CON=,
    ,,
    AT+CON: 最小连接间隔:单位1.25ms,6 ≤ min_connect_interval ≤ max_connect_interval
    最大连接间隔:单位1.25ms,min_connect_interval ≤ max_connect_interval ≤ 0x0C80
    从机延迟:最大值499
    监督超时:单位10ms,1 ≤ conn_sup_timeout ≤ 3200
    注意:(1 + slave_latency) * (max_connect_interval) < conn_sup_timeout
    设置连接参数执行结果:
    OK - 执行成功,
    FAIL - 执行失败,
    ERP - 参数错误
    打赏
    支付宝
    微信
    本文作者:Pinno
    版权声明:本文首发于Pinno,转载请注明出处!