Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
BLE主机
数据交互
WIFI模块_RW007
RW007 高速 WiFi 模块使用BLE主机功能连接 BLE 从机设备示例
发布于 2021-04-14 16:21:15 浏览:4162
订阅该版
[tocm] # RW007 高速 WiFi 模块使用BLE主机功能连接 BLE 从机设备示例 在本文档中将会从零开始说明如何使用 `RW007` 的 `BLE` 主机功能去连接一个`BLE`串口透传设备,实现数据交互的功能。 ## 硬件准备 - 1.`STM32F411-NUCLEO` 开发板,`RW007 EVB`模块 - 2.`PC` 电脑 - 3.`USB` 数据线 - 4.`BLE` 数据透传模块(如`HC-08`模块、`KT6368A`蓝牙模块等) - 5.`USB-TTL` 模块(如`CH340`等) - 6.杜邦线若干条 ## 软件准备 - 1.`RT-Thread Studio IDE `软件 - 2.串口调试软件(`xshell`、`SSCOM` 等) ## 步骤一:串口配置 `KT6368A蓝牙模块` 在这里主要使用`RW007`高速 `WIFI BLE`模块,主要使用`BLE`的主机功能,所以需要一个`BLE`的从机设备(如`HC-08`模块、`KT6368A`蓝牙模块等都可以),因为手上刚好有`KT6368A`蓝牙`BLE`模块,所以这里简单说说怎样通过串口配置`KT6368A`蓝牙模块,下图是`KT6368A`蓝牙模块的控制指令说明.  - 操作1:设置 BLE 蓝牙模块的名称 ``` AT+BMBLE_TEST ``` 输入上述命令后,会正常返回`OK`表示设置成功。 说明:这里设置 BLE 模块的名称为`BLE_TEST` - 操作2:设置 BLE 蓝牙模块的 MAC 地址 ``` AT+BNAACCEEFFDDEE ``` 输入上述命令后,会正常返回`OK`表示设置成功。 说明:这里设置 BLE 蓝牙模块的 MAC 地址为`AACCEEFFDDEE` - 操作3:设置芯片复位 ``` AT+CZ ``` 输入上述命令后,模块会正常重启,并打印下面的信息,说明配置成功了。 ``` 郃T+VER1.6-20210114\0 TM+BLE_TEST \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 TN+AACCEEFFDDEE TD+KT6368A-SPP-04\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 TS+123456 ``` - 操作4:手机通过`BLE调试助手`扫描附近的蓝牙设备 手机上需要自行安装`BLE调试助手`等蓝牙工具软件。  从手机扫描的结果可以看到,前面步骤设置的`BLE_TEST`蓝牙设备,并且可以发现`MAC`地址并不是设置的`AACCEEFFDDEE`,关于这个问题,在蓝牙模块的说明手册上有提示,具体原因可以百度。  - 操作5:手机通过`BLE调试助手`连接蓝牙设备进行通信 通过手机与蓝牙设备进行通信,验证蓝牙设备通信功能。   到此,验证`BLE`从机设备通信功能,此时只需要把蓝牙设备的串口接在需要透传的设备上即可透传数据。 ## 步骤二:使用`STM32F411-NUCLEO`通过 `RW007` BLE 功能测试`BLE`蓝牙模块数据传输功能 可以分为以下 3 个步骤: - 步骤(1):参考相关文档创建使用RT-Thread Studio IDE 工程 - 步骤(2):替换 `RW007`软件驱动包 - 步骤(3):通过 `BLE`测试命令与`BLE`设备进行通信 ### 步骤(1):参考相关文档创建使用RT-Thread Studio IDE 工程 由于使用`RT-Thread Studio IDE `如何创建使用`RW007`模块的工程,官方的文档中心有提供比较详细的文档,可以参考此文档进行创建,或可以直接使用官方提供的工程,在此进行详细的描述。 ### 步骤(2):替换 `RW007`软件驱动包 可以把提供的`RW007`软件驱动包,替换到创建的`RT-Thread Studio`工程目录下。 ### 步骤(3):通过 `BLE` 测试命令与`BLE`设备进行通信 当前面两个步骤完成后,可以在`STM32F411-NUCLEO`的调试串口上看到对应的`BLE`测试命令,此时`BLE`设备(这里使用`KT6368A`蓝牙模块进行演示)通过 `USB-TTL`串口与PC 进行连接。 (1)查看`RW007`BLE 相关命令 ``` msh />rw rw007_ble 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 /> ``` (2) `RW007` BLE 功能初始化 输入命令: ``` rw007_ble init central ``` 测试示例: ``` msh />rw007_ble init central 263 - ble_cmd_init start ble central ``` 注意:目前仅支持`central`主机模式 (3) `RW007` 扫描附近的`BLE`设备 输入命令: ``` rw007_ble scan ``` 测试示例: ``` msh />rw007_ble scan 318 - ble_cmd_scan resp_type: 1, len: 59 RW007_BLE_NTF_TYPE_DISCOVER received advertisement; event_type=0 rssi=-46 addr_type=0 addr=ee:dd:ff:ee:cc:aa mfg_data = 02 01 06 03 03 f0 ff resp_type: 1, len: 83 RW007_BLE_NTF_TYPE_DISCOVER received advertisement; event_type=4 rssi=-47 addr_type=0 addr=ee:dd:ff:ee:cc:aa mfg_data = 1e 09 42 4c 45 5f 54 45 53 54 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ``` 可以从扫描结果中看到`mac`地址为`ee:dd:ff:ee:cc:aa`的设备,这个设备为前面通过串口设置`BLE`模块的`MAC`地址,后面将以这个地址进行连接设备。 (4)`RW007`连接`BLE`蓝牙设备 通过`rw007_ble connect `命令连接`BLE`设备 输入命令: ``` rw007_ble connect ee:dd:ff:ee:cc:aa ``` 测试示例: ``` msh />rw007_ble connect ee:dd:ff:ee:cc:aa 341 - ble_cmd_connect str_addr: ee:dd:ff:ee:cc:aa mac addr: aa:cc:ee:ff:dd:ee 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: aa:cc:ee:ff:dd:ee ``` (5)`RW007`向蓝牙设备发送数据 由于目前大部分`BLE`设备通过`UUID`进行数据的收发.  从上面的 `UUID`说明可知,特征 1 的`UUID`为 `“FFF1”`,特征是`“WRITE”`、 `“NOTIFY”`,这里可以直接使用`FFF1`作为测试的`UUID`. 输入命令: ``` rw007_ble write_uuid 1 fff1 Hello,BLE_TEST ``` 测试示例: ``` msh />rw007_ble write_uuid 1 fff1 Hello,BLE_TEST 434 - ble_cmd_gattc_write_by_uuid write conn_hanle:1 uuid:fff1 data:Hello,BLE_TEST write rc:0 msh /> ```  (6)`RW007`接收蓝牙设备的数据 输入命令: ``` rw007_ble notify_change 1 1 0xfff1 ``` 测试示例: ``` msh />rw007_ble notify_change 1 1 0xfff1 415 - ble_cmd_gatt_notify_change_by_uuid ```  到此,使用`STM32F411-NUCLEO`通过 `RW007` BLE 功能测试`BLE`蓝牙模块数据传输功能完成。
1
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
shadowliang
Hello,world!!!
文章
10
回答
100
被采纳
6
关注TA
发私信
相关文章
1
wlan设备测试,除了rw007模块,还有哪些可以测试?
2
rw007 开机进不了spi模式
3
RW007wifi模块扫描热点超时的问题
4
stm32f429+RW007 初始化一直失败???
5
RW007 TCP发送数据出现瞬间卡顿问题,请问是怎么回事?
6
关于K210使用RW007的注意
7
RW007 没有作为从机连接手机的例子吗?
8
RW007 运行异常
9
RW007 wifi 模块中断回环电阻的作用?
10
RW007模块有Arduino开发板上的例程吗?
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
I2C_IIC
UART
ESP8266
cubemx
WIZnet_W5500
ota在线升级
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
keil_MDK
ulog
SFUD
msh
C++_cpp
MicroPython
本月问答贡献
RTT_逍遥
10
个答案
3
次被采纳
xiaorui
3
个答案
2
次被采纳
winfeng
2
个答案
2
次被采纳
三世执戟
8
个答案
1
次被采纳
KunYi
8
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
lizimu
2
篇文章
9
次点赞
swet123
1
篇文章
4
次点赞
Days
1
篇文章
4
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部