【教程】小安派BW21-CBV-Kit——BLE 串口透传服务器

[复制链接]
查看43 | 回复0 | 4 天前 | 显示全部楼层 |阅读模式

材料

  • BW21-CBV-Kit x 1
  • Android / iOS 手机

示例概述

在 BLE(蓝牙低功耗)中,应用数据通过 GATT(通用属性配置文件)系统发送和接收。GATT 使用服务、特性和属性来组织数据,并控制数据的读取和写入方式。蓝牙 SIG(特殊兴趣组)为常见应用提供了多个预定义服务,但用户也可以根据自己的数据结构和应用需求实现自定义服务和特性。

本示例中,使用 BLEServiceBLECharacteristic类来实现一个自定义服务,类似于常规的 UART(串口通信)。该自定义服务是 Nordic UART 服务,许多智能手机应用程序都支持此服务。


操作步骤

image.png

  1. 上传代码并在上传完成后按下 Ameba 板的重置按钮。
  2. 连接应用程序 打开智能手机上的应用程序,扫描并连接到名为“AMEBA_BLE_DEV”的 BW21-CBV-Kit 开发板,并在应用中选择 UART 功能。请注意,BW21-CBV-Kit 板上的 BLE UART 服务仅适用于 Bluefruit Connect 应用中的 UART 和 Plotter 功能,其他功能(如 Pin I/O,图像传输)需要其他 BLE 服务,且这些服务未包含在本示例中。

image.png

image.png

  1. 发送和接收消息
    1. 在应用的 UART 终端部分输入一条消息并点击发送。您应该可以在 Arduino 串口监视器中看到该消息。
    2. 在 Arduino 串口监视器中输入一条消息并点击发送。该消息将在智能手机应用中显示。

image.png

image.png


代码参考

  • BLECharacteristic类用于创建两个特性,一个用于接收(Rx),另一个用于发送(Tx),并将它们添加到通过 BLEService类创建的服务中。
  • 使用 set__Property()方法为每个特性设置所需的读取/写入/通知属性,并使用 set__Callback()方法注册回调函数。每个特性的所需缓冲区大小也会设置,以确保其有足够的内存来存储完整的字符串。
  • 当数据写入接收特性时,注册的回调函数会被调用,并将接收到的数据作为字符串打印到串口监视器。
  • 当数据通过串口接收时,它会被复制到发送特性的缓冲区中,并使用 notify()方法通知已连接的设备有新数据。
用心做好保姆工作
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则