RW007模块
官方文档:
软件包:
https://github.com/RT-Thread-packages/rw007
SPI模式(基于rt-thread-3.1.2)
SPI连接方式
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) |
步骤
- 复制SConscript文件
进入rt-thread-3.1.3\bsp\stm32\libraries\HAL_Drivers,将该目录下的SConscript文件复制到
rt-thread-3.12\bsp\stm32\libraries\HAL_Drivers文件夹下,提示覆盖,确定即可(原来的文件存在依赖问题,会导致生成工程时加入错误的drv_xxx.c文件)。
- Bsp工程修改与生成
在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
- 配置menuconfig
进入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频率
修改spi_wifi_rw007.c中的
cfg.max_hz = 2 * 1000000; //原来为30 * 1000000,会导致初始化卡在wlan init success
(具体数值可以根据情况修改)
- 编译下载
在Keil5中进行编译,此时应该没有任何错误。下载到开发板,串口调试助手输出如下信息
表示rw007初始化成功,接下来可以使用wifi相关命令
UART模式(基于rt-thread-3.1.2)
UART连接方式
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)连接。
步骤
- Bsp工程生成
前期准备一样,只是不需要使用STM32CubeMX重新配置管脚。我使用的是板子上的UART3。
Bsp默认开启UART1用于FINSH组件配置
- 配置menuconfig
进入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中断引脚的要求。
参考资料: