RW007 高速WIFI 模块 开启 BLE 功能说明
RW007 高速WIFI 模块 开启 BLE 功能说明
由于RW007
模块默认没有开启BLE
功能,使用BLE
功能,需要根据下面的步骤进行操作。
步骤1:更新 RW007
模块的固件
由于默认RW007
模块的固件不支持BLE
主机功能,所以需要使用相关的升级工具进行升级。具体操作请参考附件中对应的文档进行操作。
步骤2:更新主机的 RW007
软件驱动包
由于v2.0.1
版本的RW007
软件驱动包中,不包括BLE
功能,所以需要手动更新RW007
的软件驱动包,请使用提供的软件驱动包替换到主机软件包的目录下。
步骤3:测试RW007
模块的BLE
功能
根据前面的操作步骤,确保RW007
模块自身的固件已经更新和RW007
驱动软件包已更新替换到使用的工程中,在提供的软件驱动包中,已经包含了部分 BLE
功能的测试命令,可以在串口调试中通过msh
命令,进行调试。
msh />rw007_ble [rw007_ble command] rw007_ble help rw007_ble init central/peripheral Note: init ble mode rw007_ble get_addr Note: get ble address rw007_ble update_params Note: update connect parameters(no support) rw007_ble scan Note: scan ble slave rw007_ble stop_scan Note: stop scan rw007_ble connect xx:xx:xx:xx:xx:xx Note: use slave addr to connect rw007_ble disconnect [conn_handle] Note: disconnect slave rw007_ble get_server Note: discover all server(no support) rw007_ble get_char Note: discover all description(no support) rw007_ble get_disc Note: discover all characteristic(no support) rw007_ble mtu_exch Note: ble mtu exchange(no support) rw007_ble notify Note: enable ble notify(no support) rw007_ble write Note: ble write data(no support) rw007_ble read Note: ble read data(no support) rw007_ble notify_change [conn_handle] [char_value] [UUID] Note: ble notify configure by uuid rw007_ble write_uuid [conn_handle] [UUID] [data] Note: ble write data by uuid rw007_ble read_uuid Note: ble read data by uuid(no support) msh />
如上可知,有部分BLE
功能暂时还没支持的,下面将详细说一说BLE
测试命令的使用。
BLE 功能初始化
BLE
功能初始化函数,使用 BLE
功能必须调用。
1.
RW007
BLE 设备初始化为主机设备。
rw007_ble init central
测试示例
msh />rw007_ble init central 122 - ble_cmd_init start ble central msh />
2.
RW007
BLE 设备初始化为从机设备
注意:目前不支持使用从机模式。
rw007_ble init peripheral
BLE 功能获取本机的BLE设备地址
由于BLE设备的地址分为public
公共地址和random
随机地址。
rw007_ble get_addr
测试示例:
msh />rw007_ble get_addr 273 - ble_cmd_get_addr msh />resp_type: 0, len: 12 RW007_BLE_RSP_TYPE_ADDR_GET public_id_addr = 48:00:42:8c:47:c9 random_id_addr = 00:04:5c:43:00:00
BLE 功能扫描设备
目前RW007
BLE 功能支持通过 scan
命令,扫描周围的BLE
设备。
1.执行扫描周围
BLE
设备
rw007_ble scan
测试示例:
msh />rw007_ble scan 176 - ble_cmd_scan msh />resp_type: 1, len: 65 RW007_BLE_NTF_TYPE_DISCOVER received advertisement; event_type=0 rssi=-60 addr_type=0 addr=4c:ed:fb:00:04:b1 resp_type: 1, len: 56
这里的 addr
地址内容可以为后面连接设备使用,由于目前没有直接显示对应 BLE 设备的名称,需要先人工确定 BLE 设备的地址。
2.停止扫描周围
BLE
设备 该指令用于RW007
模块正在执行scan
扫描操作过程中,马上停止扫描的动作,可以执行此命令。
rw007_ble stop_scan
BLE 功能设备连接
目前 RW007
BLE 功能设备支持通过 BLE
设备的类mac
地址来连接设备,该命令仅支持主机模式去连接从机设备的类mac
地址,连接成功后会有对应的conn_handle
值,这个conn_handle
值在其他功能沿用。
rw007_ble connect xx:xx:xx:xx:xx:xx
测试示例:
msh />rw007_ble connect 4c:ed:fb:00:04:b1 198 - ble_cmd_connect str_addr: 4c:ed:fb:00:04:b1 mac addr: b1: 4: 0:fb:ed:4c msh />resp_type: 1, len: 52 RW007_BLE_NTF_TYPE_CONNECT type: 0, status: 0, conn_handle: 1 resp_type: 1, len: 44 RW007_BLE_NTF_TYPE_CONNECT_DESC our_id_addr: c9:47:8c:42:00:48 peer_id_addr: b1:04:00:fb:ed:4c
BLE 功能设备断开连接
目前RW007
BLE 功能设备支持主动断开从设备的连接。
rw007_ble disconnect [conn_handle]
其中 conn_handle
与 connect
连接时的需要一致。
msh />rw007_ble disconnect 1 341 - ble_cmd_disconnect msh />resp_type: 1, len: 52 RW007_BLE_NTF_TYPE_DISCONN
BLE 功能写数据
目前RW007
BLE 功能写数据,支持通过指定UUID
来写对应的数据。
rw007_ble write_uuid [conn_handle] [UUID] [data]
指令说明:[conn_handle]
为 RW007
连接设备时生成的对应值,[UUID]
为对应 BLE
设备的特征参数,[data]
为需要发送的数据。
测试示例:
msh />rw007_ble write_uuid 1 ffe1 Hello,RT-Thread.... 402 - ble_cmd_gattc_write_by_uuid write conn_hanle:1 uuid:ffe1 data:Hello,RT-Thread.... write rc:0 msh />
BLE 功能更新notify 参数
目前 RW007
BLE 功能支持修改接收 notify
参数。
rw007_ble notify_change [conn_handle] [char_value] [UUID]
参数说明:
[conn_handle]
为 RW007
连接设备时生成的对应值
[char_value]
为配置参数,具体如下
0:disable indication¬ification 1:enable notification,disable indication 2:enable indication, disable notification
[UUID]
为对应 BLE
设备的特征参数值。
BLE 功能关于广播包类型的说明
目前 RW007
BLE 功能中可以关于广播包 event
的类型可以分为下面几种。
/* Advertising report */ #define BLE_HCI_ADV_RPT_EVTYPE_ADV_IND (0) #define BLE_HCI_ADV_RPT_EVTYPE_DIR_IND (1) #define BLE_HCI_ADV_RPT_EVTYPE_SCAN_IND (2) #define BLE_HCI_ADV_RPT_EVTYPE_NONCONN_IND (3) #define BLE_HCI_ADV_RPT_EVTYPE_SCAN_RSP (4)
广播包结构如下:
广播包结构描述: struct ble_gap_disc_desc {uint8_t event_type;uint8_t length_data;ble_addr_t addr;int8_t rssi;uint8_t *data; /**** LE direct advertising report fields; direct_addr is BLE_ADDR_ANY if* direct address fields are not present.*/ble_addr_t direct_addr; }; 通过event_type区分出不同的广播包类型,所有类型分为如下几种: /* Advertising report */ 0 : 普通广播数据包 1 : 直接广播包 2 : 扫描请求包 3 : 不可连接广播指示 4 : 扫描响应数据包
因此,在设备的scan
扫描回应中可以通过对应的event_type
来判定是哪种广播包的类型。
在 RW007
的驱动代码中,可以通过下面的event_type
来判断是哪种类型的广播包,可以让用户自行实现对应功能。
case RW007_BLE_NTF_TYPE_DISC:{rt_kprintf("RW007_BLE_NTF_TYPE_DISCOVER\n");....switch(event_type){case BLE_HCI_ADV_RPT_EVTYPE_ADV_IND: break;case BLE_HCI_ADV_RPT_EVTYPE_DIR_IND: break;case BLE_HCI_ADV_RPT_EVTYPE_SCAN_IND: break;case BLE_HCI_ADV_RPT_EVTYPE_NONCONN_IND: break;case BLE_HCI_ADV_RPT_EVTYPE_SCAN_RSP: break;}....}
测试示例:
1.初始化
RW007
BLE 功能为主机模式。
msh /> rw007_ble init central 263 - ble_cmd_init start ble central msh />
2.执行
BLE
扫描指令
msh />rw007_ble scan 318 - ble_cmd_scan msh />resp_type: 1, len: 83 RW007_BLE_NTF_TYPE_DISCOVER received advertisement; event_type=3 rssi=-56 addr_type=1 addr=41:ef:77:50:2b:29 mfg_data = 1e ff 06 00 01 09 20 02 5b 5d cd 33 a4 8c c7 c5 36 ac de 12 ab 17 87 89 e1 84 e9 19 ec c4 ad resp_type: 1, len: 83 RW007_BLE_NTF_TYPE_DISCOVER received advertisement; event_type=3 rssi=-65 addr_type=1 addr=3c:2e:33:ea:8d:aa mfg_data = 1e ff 06 00 01 09 20 02 28 4c cf 9b a7 f2 7d f6 c7 7e d9 54 ac dd 91 a6 ee 0d 22 43 e1 8f e3 resp_type: 1, len: 83 RW007_BLE_NTF_TYPE_DISCOVER received advertisement; event_type=3 rssi=-59 addr_type=1 addr=42:18:ab:80:5c:11 mfg_data = 1e ff 06 00 01 09 20 02 eb bf cf 15 97 aa 50 7f a4 57 25 d9 21 35 71 eb 6f aa a1 56 5c d5 e2
3.观察
event_type=
可以确定是哪种广播包类型。
RW007_BLE_NTF_TYPE_DISCOVER received advertisement; event_type=0 rssi=-64 addr_type=1 addr=61:63:46:c3:49:99 mfg_data = 02 01 1a 02 0a 0c 0b ff 4c 00 10 06 00 19 1d 6d 63 18 resp_type: 1, len: 52 RW007_BLE_NTF_TYPE_DISCOVER received advertisement; event_type=4 rssi=-64 addr_type=1 addr=61:63:46:c3:49:99 mfg_data = resp_type: 1, len: 73 RW007_BLE_NTF_TYPE_DISCOVER received advertisement; event_type=0 rssi=-73 addr_type=0 addr=91:21:52:00:4e:b8 mfg_data = 14 ff 4c 00 07 0f 00 02 20 91 21 52 00 4e b8 f5 58 58 3c 39 00
以上的代码可以在RW007
的软件驱动包中找到对应的位置,想深入了解的可以仔细阅读。
注意事项:
1.请确保使用的
RW007
模块带BLE
功能。2.
RW007
BLE 功能是基于SPI
模式的,请确保RW007
模块自身的版本为2.0.2
以上的版本。
RW007 高速WIFI 模块 开启 BLE 功能说明相关推荐
- RW007 高速 WiFi 模块使用BLE主机功能连接 BLE 从机设备示例
RW007 高速 WiFi 模块使用BLE主机功能连接 BLE 从机设备示例 在本文档中将会从零开始说明如何使用 RW007 的 BLE 主机功能去连接一个BLE串口透传设备,实现数据交互的功能. 硬 ...
- 柿饼派通过RW007的BLE 功能读取米家蓝牙温湿度计数据
## 前言 一直在关注 RT-Thread 的柿饼派和 RW007 模块,听说最近新版的 RW007 模块支持 BLE 功能了,于是便向客服咨询在柿饼派上的 RW007 模块是否也支持 BLE 功能 ...
- TX2--wifi模块开启AP路由功能
一.用板载的wifi模块开启AP功能 1.有坑,风险较大请参考 (1)How to enable Wi-Fi and BT on the TX2. (2)Setting up wifi Access ...
- 《嵌入式 - 模块》RW007 WIFI模块联网与使用(一)
开发环境: RT-Thread版本:4.0.3 操作系统:Windows10 RT-Thread Studio版本:2.0.1 开发板MCU:STM32F746ZGT6U(NUCLEO-F746ZG开 ...
- WiFi选型_主设备WiFi模块,从设备WiFi模块功能介绍
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.主设备WiFi模块 主设备WiFi模块功能介绍 二.从设备WiFi模块 从设备WiFi模块功能介绍 前言 在物联网 ...
- 智能物联网有哪些应用场景?_串口WiFi模块,蓝牙模块,WiFi+蓝牙组合模块
文章目录 前言 一.智能家居 二.智能交通 三.智慧农业 四.智能制造 五.智慧物流 六.智慧能源 七.智能医疗 八.智能安防 九.智慧建筑 十.智能零售 无线模块及应用方案 前言 物联网从萌芽到彷徨 ...
- 5-(基础入门篇)学会刷Wi-Fi模块固件(刷LUA版本固件)
http://www.cnblogs.com/yangfengwu/p/9065559.html 基础教程源码链接请在淘宝介绍中下载,由于链接很容易失效,如果失效请联系卖家,谢谢 https://it ...
- 北斗和GPS定位在室外非常好用,但当手机进入室内时,它们的定位功能就很不准,甚至无法定位。我们可以开启WLAN扫描定位WIFI模块固定编码或者开启手机的A-GPS辅助定位通过基站,A-GPS服务器定位
手机定位已经成为人们生产生活必不可少的工具,但有些人的手机定位又快又准,有些人的手机定位时常又慢又偏差大.那该如何解决呢?可以通过下面两个设置来提高定位速度和精度. 1.A-GPS辅助,提高室外定位速 ...
- 集多功能为一体的智能WiFi模块Linux多线程处理器openwrt开发板工业4G路由器网口有线转无线WiFi
集多功能为一体的智能WiFi模块Linux多线程处理器openwrt开发板工业路由器网口有线转无线WiFi双路RS485/RS232串口透传 RMS7688A集多功能为一体的智能WiFi模块,能跑Li ...
最新文章
- 【论文解读】突破置换模块计算瓶颈,MSRA开源轻量版HRNet,超越主流轻量化网络!|CVPR2021...
- 视觉平衡与物理平衡_怎样做好摄影中“视觉平衡”的那些事
- w3 protocol
- java对象实例_深入理解Java对象实例生成的例子!(转)
- JavaFX仿windows文件管理器目录树
- 远程GitHub中的项目拉取到本地
- IntelliJ IDEA最常用的一些快捷键,学会了室友还以为你在祖安对线
- 360的服务器在哪个文件夹,如何卸载服务器上顽固的360
- selenium 处理cookie及switch的使用
- Matlab--colorbar的各项细节操作
- gridreport5.6如何设置打印3次_转载一篇文章 奔图打印机常见问题以及解决方法
- Bailian3704 扩号匹配问题【堆栈】
- Jquery easy ui datagrid動態加載列問題
- python中else与for_在Python中使用else条件语句和for循环
- iocomp入门教程-以MFC中iplotx为例
- 新网站如何让百度快速收录,百度快速收录详细操作教程
- 什么是三层交换机-三层交换机的工作原理和作用
- Reversing.kr-Ransomware
- win10 关闭自动维护计划任务
- 通信业的双11来了!充话费、办宽带、买手机每年这时候最划算
热门文章
- 2011级-csdn-java-张侃—第十一周周报
- idea集成docker插件
- 【解决方案】Microsoft Visual C++ 14.0 is required
- 【已解决】Microsoft Visual C++ Redistributable is not installed
- win8和win10下,visual studio 2008 调试出现无响应的卡死问题解决
- c语言五子棋小游戏vc,C语言实现五子棋小游戏
- 工业物联网中的操作技术攻击检测系统
- CSS 实现自动换行、强制换行、强制不换行的属性
- Docker系列之入门
- 如何做解决问题的乐趣