---
title: "RT -Thread Studio开发环境下驱动W5500网络芯片"
url: "https://maker.wiznet.io/WIZnet/projects/rt-thread-studio%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E4%B8%8B%E9%A9%B1%E5%8A%A8w5500%E7%BD%91%E7%BB%9C%E8%8A%AF%E7%89%87/"
markdown_url: "https://maker.wiznet.io/WIZnet/projects/rt-thread-studio%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E4%B8%8B%E9%A9%B1%E5%8A%A8w5500%E7%BD%91%E7%BB%9C%E8%8A%AF%E7%89%87/md"
type: "UCC: User Created Content"
author: "love潇潇熊"
author_url: "https://blog.csdn.net/qq_25186745/article/details/112647919"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "love潇潇熊"
original_url: "https://blog.csdn.net/qq_25186745/article/details/112647919"
published: "2023-02-10"
language: "zh"
hardware: ["WIZnet W5500"]
likes: 2
views: 390
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

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

> RT-Tread drives W5500 example

Original author: love潇潇熊 (source: https://blog.csdn.net/qq_25186745/article/details/112647919)

## Components

- **WIZnet W5500** x 1 ([docs](https://docs.wiznet.io/Product/Chip/Ethernet/W5500))

WIZnet parts: W5500 ([Datasheet](https://docs.wiznet.io/Product/Chip/Ethernet/W5500/datasheet?utm_source=maker&utm_medium=project&utm_campaign=w5500), [product hub](https://maker.wiznet.io/products/w5500/))

## Article

开发环境

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

---

Source: https://maker.wiznet.io/WIZnet/projects/rt-thread-studio%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E4%B8%8B%E9%A9%B1%E5%8A%A8w5500%E7%BD%91%E7%BB%9C%E8%8A%AF%E7%89%87/
