RW007_WiFi模块(SPI/UART模式)在STM32F407上的使用经验

RW007模块

RW007_WiFi模块(SPI/UART模式)在STM32F407上的使用经验_第1张图片

官方文档:

https://www.rt-thread.org/document/site/application-note/packages/rw007_module_using/an0034-rw007-module-using/

软件包:

https://github.com/RT-Thread-packages/rw007

SPI模式(基于rt-thread-3.1.2)

SPI连接方式

RW007_WiFi模块(SPI/UART模式)在STM32F407上的使用经验_第2张图片

RW007和单片机的连接管脚如下,管脚的数字表示在drv_gpio.c中定义

RW007

STM32F407

SCK

PB13(29)SPI2_SCK

MISO

PB14 SPI2_MISO

MOSI

PB15 SPI2_MOSI

CS

PF4(84)

INT/BUSY(D9)

PF5(85)

RST(D8)

PF6(86)

 

步骤

  1. 复制SConscript文件

进入rt-thread-3.1.3\bsp\stm32\libraries\HAL_Drivers,将该目录下的SConscript文件复制到

rt-thread-3.12\bsp\stm32\libraries\HAL_Drivers文件夹下,提示覆盖,确定即可(原来的文件存在依赖问题,会导致生成工程时加入错误的drv_xxx.c文件)。

  1. Bsp工程修改与生成

在f407探索者bsp下的env中,输入scons --dist新建初始化工程,工程存放在dist/目录下。在dist/目录下的工程可以拷贝到任意处使用。注意修改template.uvprojx工程,debug选择ST-Link Debuger,下载方式为SW模式,保存。

进入当前bsp目录下的stm32f407-atk-explorer\board\CubeMX_Config文件夹,可见下列文件

RW007_WiFi模块(SPI/UART模式)在STM32F407上的使用经验_第3张图片

右键修改CubeMX_Config.ioc文件(我使用的是4.27.0版本的CubeMX,无法打开高版本创建的ioc,因此做了修改),修改内容如下

MxCube.Version=4.27.0

MxDb.Version=DB.4.27.0

双击打开CubeMX_Config.ioc文件,修改SPI2引脚配置(默认的引脚在板子上有其他的外设使用,会引起冲突,导致rw007初始化失败),修改内容如下图

RW007_WiFi模块(SPI/UART模式)在STM32F407上的使用经验_第4张图片

保存 ,并生成工程 。若提示下图信息,选择Continue

RW007_WiFi模块(SPI/UART模式)在STM32F407上的使用经验_第5张图片

  1. 配置menuconfig

进入bsp主目录,右键进入env,输入menuconfig进行配置

Hardware Drivers Config → On-chip Peripheral Drivers → Enable SPI BUS,选择SPI2

RW007_WiFi模块(SPI/UART模式)在STM32F407上的使用经验_第6张图片

 

RT-Thread online packages → IoT - internet of things → Wi-Fi

RW007_WiFi模块(SPI/UART模式)在STM32F407上的使用经验_第7张图片

对于正点原子探索者F407中的RW007,我使用spi2

RW007_WiFi模块(SPI/UART模式)在STM32F407上的使用经验_第8张图片

RT-Thread Components → Device Drivers → Using WiFi,开启WiFi框架,保持默认。

RW007_WiFi模块(SPI/UART模式)在STM32F407上的使用经验_第9张图片

接下来一路ESC,提示保存,选择YES。然后scons –target=mdk5编译生成工程。

  1. 修改SPI频率

修改spi_wifi_rw007.c中的

cfg.max_hz = 2 * 1000000; //原来为30 * 1000000,会导致初始化卡在wlan init success

(具体数值可以根据情况修改)

  1. 编译下载

在Keil5中进行编译,此时应该没有任何错误。下载到开发板,串口调试助手输出如下信息

RW007_WiFi模块(SPI/UART模式)在STM32F407上的使用经验_第10张图片  RW007_WiFi模块(SPI/UART模式)在STM32F407上的使用经验_第11张图片

表示rw007初始化成功,接下来可以使用wifi相关命令

UART模式(基于rt-thread-3.1.2)

UART连接方式

RW007_WiFi模块(SPI/UART模式)在STM32F407上的使用经验_第12张图片

RW007和单片机的连接管脚如下,管脚的数字表示在drv_gpio.c中定义

RW007

STM32F407

D1

PB10(TX)

D0

PB11(RX)

D8(RST)

PF6(86)

 

要注意的是,RW007板子上的丝印可能会引起误解

丝印上的 实际对应的是RW007芯片的RX,需要与单片机的UART3的PB10(TX)连接,丝印上的 实际对应的是RW007芯片的TX,需要与单片机的UART3的PB11(RX)连接。

步骤

  1. Bsp工程生成

前期准备一样,只是不需要使用STM32CubeMX重新配置管脚。我使用的是板子上的UART3。

Bsp默认开启UART1用于FINSH组件配置

  1. 配置menuconfig

进入bsp主目录,右键进入env,输入menuconfig进行配置

开启UART3:

→Hardware Drivers Config → On-chip Peripheral Drivers → Enable UART

RW007_WiFi模块(SPI/UART模式)在STM32F407上的使用经验_第13张图片

 

选择AT组件:

→ RT-Thread online packages → IoT - internet of things

RW007_WiFi模块(SPI/UART模式)在STM32F407上的使用经验_第14张图片

RW007_WiFi模块(SPI/UART模式)在STM32F407上的使用经验_第15张图片

 

AT socket device modules选择Realthread RW007

AT client device name为uart3

rw007 wifi ssid为要连接的无线网络

rw007 wifi password为无线网络密码

 

打开AT调试信息输出功能

→ RT-Thread Components → Network → AT commands

RW007_WiFi模块(SPI/UART模式)在STM32F407上的使用经验_第16张图片

  1. 编译下载

接下来一路ESC,提示保存,选择YES。然后scons –target=mdk5编译生成工程。

在Keil5中进行编译,此时应该没有任何错误。下载到开发板,串口调试助手输出如下信息

RW007_WiFi模块(SPI/UART模式)在STM32F407上的使用经验_第17张图片

表示RW007串口接口模式初始化成功,接下来可以使用相关的AT指令,下图为一个例子。

RW007_WiFi模块(SPI/UART模式)在STM32F407上的使用经验_第18张图片

我的CSDN:https://blog.csdn.net/wbdxz

ST官方的DISCOVERY板子中使用RW007的注意事项:INT/BUSY引脚不可使用板子是的PC0,因为PC0在原理图上已经被USB_OTG占用,并且被上拉为3V高电平。无法满足wifi中断引脚的要求。

参考资料:

  • https://www.rt-thread.org/document/site/application-note/packages/rw007_module_using/an0034-rw007-module-using/
  • 软件包:https://github.com/RT-Thread-packages/rw007
  • 利用RW007模块连接ONENET之UART模式(一)

你可能感兴趣的:(Keil,STM32,物联网)