rt-thread中GD32f103(或STM32f103)和w5500,在env环境下进行配置

一、开发环境

1.硬件:GD32f103vet6开发板,w5500模块,w5500连接在开发板的SPI1总线上。

2.软件:rt-thread操作系统,wiznet软件包,bsp采用的是stm32f103某型号(忘了)的bsp直接用在GD32开发板上,因为同型号的GD32和STM32芯片支持pin2pin。

3.引脚连接方式:PA4-->SPI1NSS, PA5-->SPI1SCK, PA6-->SPI1MISO, PA7-->SPI1MOSI, PE2-->W5500的中断脚。(用于w5500通讯的单片机引脚我只需要了这五个,因为我的开发板上w5500的复位引脚直接连接的GD32的nRST引脚,w5500的复位直接跟着系统一起复位了)。

4.整个系统的连接方式:开发板通过网线直接连接电脑。

5.rtthread系统下的引脚编号说明:0-15分别代表PA0-15、16-31分别代表PB0-15、32-47分别代表PC0-15、48-63分别代表PD0-15、64-79分别代表PE0-15。

二、软件包

        WIZnet 软件包是 RT-Thread 基于 WIZnet 官网 ioLibrary_Driver 代码库的移植实现,目前只支持 W5500 设备。该软件包在原代码库功能的基础上,对接 RT-Thread SAL 套接字抽象层,实现对标准 BSD Socket APIs 的支持,完美的兼容多种软件包和网络功能实现,提高 WIZnet 设备兼容性。只需要开启wiznet软件包、netdev网卡层、SAL套接字层便可。

三、BSP配置步骤

1.cubemx中打开spi1设备:

SPI初始化代码生成的话成功可以在keil5中看到:

2.env环境下打开SPI1设备:

rt-thread\bsp\stm32\stm32f103vet6_micropython10\board路径下的Kconfig文件中关于SPI配置:

menu "On-chip Peripheral Drivers"
	menuconfig BSP_USING_SPI
        bool "Enable SPI Bus"
        default n
        select RT_USING_SPI
        if BSP_USING_SPI
            config BSP_USING_SPI1
                bool "Enable SPI1 Bus"
                default n

            config BSP_SPI1_TX_USING_DMA
                bool "Enable SPI1 TX DMA"
                depends on BSP_USING_SPI1
                default n

            config BSP_SPI1_RX_USING_DMA
                bool "Enable SPI1 RX DMA"
                depends on BSP_USING_SPI1
                select BSP_SPI1_TX_USING_DMA
                default n

            config BSP_USING_SPI2
                bool "Enable SPI2 Bus"
                default n

            config BSP_SPI2_TX_USING_DMA
                bool "Enable SPI2 TX DMA"
                depends on BSP_USING_SPI2
                default n

            config BSP_SPI2_RX_USING_DMA
                bool "Enable SPI2 RX DMA"
                depends on BSP_USING_SPI2
                select BSP_SPI2_TX_USING_DMA
                default n

            config BSP_USING_SPI3
                bool "Enable SPI3 Bus"
                default n

            config BSP_SPI3_TX_USING_DMA
                bool "Enable SPI3 TX DMA"
                depends on BSP_USING_SPI3
                default n

            config BSP_SPI3_RX_USING_DMA
                bool "Enable SPI3 RX DMA"
                depends on BSP_USING_SPI3
                select BSP_SPI3_TX_USING_DMA
                default n
		endif

3.env环境中,开启wiznet包:

关闭DHCP,因为是PC直连,没有办法自动分配IP,我们自己配置静态IP:

复位引脚跟芯片的复位引脚连接在一起了,不管,随便填个80;中断引脚我的是PE2(引脚编号为66)。这里如果你的w5500接在了SPI2上那么将“spi10”改为“spi20”:

4.开启sal和netdev:

env环境配置结束。退出env环境,用

scons --target=mdk5

编译工程。

5.keil5中的改动:

在wiz.c文件中加入如下代码,其中GET_PIN(A, 4)改为自己的SPI片选口:

#include <drv_gpio.h>
static int rt_hw_spi_flash_init(void)
{
	
	struct rt_spi_device *spi_device = RT_NULL;

    spi_device = (struct rt_spi_device *)rt_malloc(sizeof(struct rt_spi_device));
    if(RT_NULL == spi_device)
    {
        LOG_E("Failed to malloc the spi device.");
        return -RT_ENOMEM;
    }
    if (RT_EOK != rt_spi_bus_attach_device_cspin(spi_device, "spi10", "spi1",GET_PIN(A, 4), RT_NULL))
    {
        LOG_E("Failed to attach the spi device.");
        return -RT_ERROR;
    }
    return RT_EOK;
}
/* 导 出 到 自 动 初 始 化 */
INIT_COMPONENT_EXPORT(rt_hw_spi_flash_init);

编译keil后报错:

做个小改动:

没毛病了:

烧录开发板后:

配置正常。

三、电脑和开发板相互ping

1.电脑和开发板的ip配置信息

开发板:

电脑:

2.电脑ping开发板

没毛病

3.开发板ping电脑

先关闭电脑防火墙:

开始ping:

没毛病,收工。
                        
参考:https://blog.csdn.net/weixin_46158019/article/details/131588233

  • 15
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值