RT -Thread Studio开发环境下驱动W5500网络芯片

RT-Tread drives W5500 example
ORIGINAL POST
By love潇潇熊
components
Hardware Components
STMF4x
X 1
Software Apps and online services
RT-Thread
details

20210115095100950.png

开发环境

RT -Thread Studio V2.0.0

芯片STM32F407VGT6

网络芯片W5500

硬件连接

第一步,打开SPI设备驱动框架

双击RT -Thread Settings

然后在打开devices文件下的board.h文件,打开#define BSP_USING_SPI2的定义,我这里使用的是SPI2

然后在stm32f4xx_hal_conf.h文件中打开对 SPI 的支持,也就是取消掉 HAL_SPI_MODULE_ENABLED 这个宏定义的注释

然后需要初始化SPI的引脚和时钟

定义了 BSP_USING_SPI3 宏之后,drv_spi.c 文件就会参与编译,该文件只是配置了 SPI 的工作方式和传输函数,具体 SPI 外设的时钟和引脚的初始化需要借助 STM32CubeMx 生成的代码

所以需要将 CubeMx 生成的 SPI2 的初始化代码复制到自己工程的 board.c 文件的末尾,使之参与编译

W5500芯片所需要的的SPI配置如下

其实需要用到的只是GPIO引脚的初始化,SPI的模式配置并没有用到。

将CubeMx 生成的 void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle)函数复制到board.c文件中

然后先编译一下,没有报错,然后打开RT -Thread Settings继续添加W5500的设备驱动

打开RT -Thread Settings,在wiznet图标上右键选择详细配置,修改SPI device name   Reset PIN number     IRQ PIN number,根据自己实际硬件连接配置

我这里使用的是SPI2,Reset脚连接到单片机的PD10,IRQ脚连接到单片机的PB12

具体的引脚编号可以在drv_gpio.c文件中查看,PB12就是28,PD10就是58

然后更RT -Thread Settings改里的配置

 

然后编译一下,在packages文件夹下会有wiznet-latest文件夹,然后打开src下的wiz.c文件

在wiz.c文件的最后面找到int wiz_init(void)函数

在wiz_init函数里添加rt_hw_spi_device_attach(“spi2”, WIZ_SPI_DEVICE, GPIOD, GPIO_PIN_11);

PD11是连接到W5500的CS引脚

发现有报错,添加#include “drv_spi.h”即可

编译无错后下载程序

发现W5500初始化已经成功了

用ifconfig命令可以查看当前获取到的IP地址

也可以使用ping命令测试网络情况

W5500驱动移植成功,使用RT -Thread Studio开发环境还是非常简单的。
————————————————
版权声明:本文为CSDN博主「love潇潇熊」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_25186745/article/details/112647919

20210115095100950.png

开发环境

RT -Thread Studio V2.0.0

芯片STM32F407VGT6

网络芯片W5500

硬件连接

第一步,打开SPI设备驱动框架

双击RT -Thread Settings

然后在打开devices文件下的board.h文件,打开#define BSP_USING_SPI2的定义,我这里使用的是SPI2

然后在stm32f4xx_hal_conf.h文件中打开对 SPI 的支持,也就是取消掉 HAL_SPI_MODULE_ENABLED 这个宏定义的注释

然后需要初始化SPI的引脚和时钟

定义了 BSP_USING_SPI3 宏之后,drv_spi.c 文件就会参与编译,该文件只是配置了 SPI 的工作方式和传输函数,具体 SPI 外设的时钟和引脚的初始化需要借助 STM32CubeMx 生成的代码

所以需要将 CubeMx 生成的 SPI2 的初始化代码复制到自己工程的 board.c 文件的末尾,使之参与编译

W5500芯片所需要的的SPI配置如下

其实需要用到的只是GPIO引脚的初始化,SPI的模式配置并没有用到。

将CubeMx 生成的 void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle)函数复制到board.c文件中

然后先编译一下,没有报错,然后打开RT -Thread Settings继续添加W5500的设备驱动

打开RT -Thread Settings,在wiznet图标上右键选择详细配置,修改SPI device name   Reset PIN number     IRQ PIN number,根据自己实际硬件连接配置

我这里使用的是SPI2,Reset脚连接到单片机的PD10,IRQ脚连接到单片机的PB12

具体的引脚编号可以在drv_gpio.c文件中查看,PB12就是28,PD10就是58

然后更RT -Thread Settings改里的配置

 

然后编译一下,在packages文件夹下会有wiznet-latest文件夹,然后打开src下的wiz.c文件

在wiz.c文件的最后面找到int wiz_init(void)函数

在wiz_init函数里添加rt_hw_spi_device_attach(“spi2”, WIZ_SPI_DEVICE, GPIOD, GPIO_PIN_11);

PD11是连接到W5500的CS引脚

发现有报错,添加#include “drv_spi.h”即可

编译无错后下载程序

发现W5500初始化已经成功了

用ifconfig命令可以查看当前获取到的IP地址

也可以使用ping命令测试网络情况

W5500驱动移植成功,使用RT -Thread Studio开发环境还是非常简单的。
————————————————
版权声明:本文为CSDN博主「love潇潇熊」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_25186745/article/details/112647919

COMMENTS

Please Login to comment
  Subscribe  
Notify of
POSTED BY
Reusable S/W