目录
使用 RT-Thread Studio IDE 体验 RW007 开发
简介
本文使用 STM32 Nucleo 系列开发板连接 RW007 WiFi 模块,通过运行 RT-Thread 操作系统,让开发板轻松愉快联网。
STM32F401 Nucleo-64
STM32 Nucleo-64 是 ST 官方推出的开发板,依据搭载的 STM32 芯片型号不同(皆为 LQFP64 封装),分为众多版本,本文所使用的是带 STM32F401RE 芯片的板子 —— STM32F401 Nucleo-64
作为本文的示例,使用其他型号的板子也可以参考本文的方法进行操作,通过 RW007 WIFI 模块方便快速联网。
主要特性
- STM32F401RET6 64 脚 MCU
- ARM Cortex-M4 内核,84MHz 主频
- 512KB Flash, 96KB SRAM 存储容量
- Arduino Uno 和 ST morpho 两类扩展接口
- 板载 ST-LINK/V2-1 调试编程器、USB 调试串口
Nucleo 上的 Arduino 接口能让开发板与 WiFi 模块「无缝衔接」,值得一提的是,这款开发板还自带了 ST-LINK 和 USB 串口,这就意味着:只需要一根 Mini-USB 线,就能完成开发和调试工作。
快速入门:Getting started with STM32 Nucleo board software development tools
原理图下载:STM32 Nucleo (64 pins) schematics
更多相关信息资料见 ST 官网详情页:STM32 Nucleo-64 development board with STM32F401RE MCU
RW007
RW007 是由上海睿赛德电子科技有限公司开发的高速 WiFi 模块,使用 SPI 与主机通信 ,支持 IEEE 802.11b/g/n 网络、 WEP/WPA/WPA2 加密方式和 STA 和 AP 模式。
主要特性
- 高性能 MCU
- 使用 SPI 通信方式
- SPI 时钟高达 30Mbps
- SPI 模式下有效以太网带宽高达上传 1MBytes/s,下载 1MBytes/s
- 支持 WiFi+BLE 主从机功能
- BLE 主机功能可同时连接多个 BLE 设备
- WiFi 支持 STA+AP 模式
- 支持微信小程序 BLE 快速配网
- 支持断网快速回连
- 内置 Bootloader,支持 OTA 固件升级、安全固件功能
- 支持批量远程升级,方便运维管理
更多相关信息资料见 RW007 介绍页面:睿赛德科技推出高速Wi-Fi模块RW007:内置RT-Thread物联网操作系统
由睿赛德推出的 WiFi 模块,可以说是 RT-Thread 的「亲儿子」了,操作系统原生支持,相应的网络组件、WLAN 框架都能完美兼容,在跑 RTT 的板子上使用 RW007,几乎不需要过多配置,即插即用式的使用体验,大大减轻了嵌入式开发者的工作量。
准备工作
在把 RW007 畅快跑起来之前,以下准备工作必不可少,你将需要:
- STM32 Nucleo-64 开发板(或其他支持 RTT 的板子)
- RW007 WiFi 模块
- Mini-USB 连接线(连接开发板与电脑)
- ENV 编译构建环境(安装使用说明)
- 开发常用软件(git、Keil5、串口调试等)
- 一颗爱折腾的心
开始上路
RT-Thread 包含了 RW007 的软件包,用户无需自己编写驱动程序,下面以 SPI 模式(断开模块上 UART 的电阻 R5 和 R7)为例,介绍如何在 STM32F401 Nucleo-64 上驱动 RW007 模块,并完成 AP 扫描、连接等基本 WiFi 功能。
硬件连接
得益于 Nucleo 上的 Arduino 接口,只需把 RW007 往开发板上一插,即可完成了两者的硬件连接。显然,其他带 Arduino 接口的开发板也能直接插,就是这么简单粗暴……
电路连接示意图如下:
各 IO 接口与功能之间的对应关系表:
STM32 引脚名 | 封装管脚序号 | Arduino 接口序号 | 功能 |
---|---|---|---|
PA5 | 5 | D13 | BOOT0/CLK |
PA6 | 6 | D12 | MISO |
PA7 | 7 | D11 | MOSI |
PB6 | 22 | D10 | BOOT1/CS |
PC7 | 39 | D9 | INT/BUSY |
PA9 | 9 | D8 | RESET |
特别注意!!!
关于pin 序号规则,与旧 bsp 使用封装管脚序号不同,在新的 stm32 bsp 框架中,统一采用顺序编号的方式,对 GPIO 驱动进行管理,移植旧程序时要留意。
pin 序号与引脚名对应关系如下表:
STM32 引脚名 | 管脚序号 pin |
---|---|
PA0 - PA15 | 0 - 15 |
PB0 - PB15 | 16 - 31 |
PC0 - PC15 | 32 - 47 |
PD0 - ... | 48 - ... |
在 bsp/stm32/libraries/HAL_Drivers/drv_gpio.c 的 pins[]
数组中,能清除看到 pinmap 关系。