官方文档:
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和单片机的连接管脚如下,管脚的数字表示在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) |
进入rt-thread-3.1.3\bsp\stm32\libraries\HAL_Drivers,将该目录下的SConscript文件复制到
rt-thread-3.12\bsp\stm32\libraries\HAL_Drivers文件夹下,提示覆盖,确定即可(原来的文件存在依赖问题,会导致生成工程时加入错误的drv_xxx.c文件)。
在f407探索者bsp下的env中,输入scons --dist新建初始化工程,工程存放在dist/目录下。在dist/目录下的工程可以拷贝到任意处使用。注意修改template.uvprojx工程,debug选择ST-Link Debuger,下载方式为SW模式,保存。
进入当前bsp目录下的stm32f407-atk-explorer\board\CubeMX_Config文件夹,可见下列文件
右键修改CubeMX_Config.ioc文件(我使用的是4.27.0版本的CubeMX,无法打开高版本创建的ioc,因此做了修改),修改内容如下
MxCube.Version=4.27.0
MxDb.Version=DB.4.27.0
双击打开CubeMX_Config.ioc文件,修改SPI2引脚配置(默认的引脚在板子上有其他的外设使用,会引起冲突,导致rw007初始化失败),修改内容如下图
保存 ,并生成工程
。若提示下图信息,选择Continue
进入bsp主目录,右键进入env,输入menuconfig进行配置
Hardware Drivers Config → On-chip Peripheral Drivers → Enable SPI BUS,选择SPI2
RT-Thread online packages → IoT - internet of things → Wi-Fi
对于正点原子探索者F407中的RW007,我使用spi2
RT-Thread Components → Device Drivers → Using WiFi,开启WiFi框架,保持默认。
接下来一路ESC,提示保存,选择YES。然后scons –target=mdk5编译生成工程。
修改spi_wifi_rw007.c中的
cfg.max_hz = 2 * 1000000; //原来为30 * 1000000,会导致初始化卡在wlan init success
(具体数值可以根据情况修改)
在Keil5中进行编译,此时应该没有任何错误。下载到开发板,串口调试助手输出如下信息
表示rw007初始化成功,接下来可以使用wifi相关命令
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)连接。
前期准备一样,只是不需要使用STM32CubeMX重新配置管脚。我使用的是板子上的UART3。
Bsp默认开启UART1用于FINSH组件配置
进入bsp主目录,右键进入env,输入menuconfig进行配置
开启UART3:
→Hardware Drivers Config → On-chip Peripheral Drivers → Enable UART
选择AT组件:
→ RT-Thread online packages → IoT - internet of things
AT socket device modules选择Realthread RW007
AT client device name为uart3
rw007 wifi ssid为要连接的无线网络
rw007 wifi password为无线网络密码
打开AT调试信息输出功能
→ RT-Thread Components → Network → AT commands
接下来一路ESC,提示保存,选择YES。然后scons –target=mdk5编译生成工程。
在Keil5中进行编译,此时应该没有任何错误。下载到开发板,串口调试助手输出如下信息
表示RW007串口接口模式初始化成功,接下来可以使用相关的AT指令,下图为一个例子。
我的CSDN:https://blog.csdn.net/wbdxz
ST官方的DISCOVERY板子中使用RW007的注意事项:INT/BUSY引脚不可使用板子是的PC0,因为PC0在原理图上已经被USB_OTG占用,并且被上拉为3V高电平。无法满足wifi中断引脚的要求。
参考资料:
利用RW007模块连接ONENET之UART模式(一)