当前位置: 代码迷 >> 综合 >> RT-Thread--Lwip
  详细解决方案

RT-Thread--Lwip

热度:78   发布时间:2023-12-19 08:42:38.0

1、软硬件配置

硬件:正点原子STM32F429核心板+正点原子阿波罗底板

软件:RT-Thread Studio 2.1.5   + 4.0.5

           STM32CubeMx 6.4.0     +   STM32Cube_FW_F4 V1.26.2  

2、新建工程

2、CubeMx配置外设

  • RCC

        板载外部晶振为25Mhz,我们配置使用外部晶振

           配置使用外部晶振(25Mhz),PLL时钟使能,主频配置为180Mhz

  • USART1

        配置使能USART1用于RTT的信息打印,IO需要满足板载PA9 PA10

  • ETH

        配置使能ETH外设,使用接口为RMII接口,保证GPIO与开发板实际GPIO相符。

            完成如上配置后进行程序生成,程序正确生成后提示如下 

        出现如上提示后,需要关闭CubeMx软件来使RTT STUDIO生效,生效后提示如下 。

        注:每次更新CubeMx后都需要关闭Cubemx软件来使studio生效。

 3、RT-Thread Settings设置

        打开RT-Thread Settings按照下图进行配置。保存生效。

  4、board.h文件设置

        如下图,打开board.h文件,按照说明进行如下设置

   5、添加复位操作

        如上操作完成后进行编译,提示报错如下

         代码缺少phy_reset函数,该函数用来复位网络外设(LAN8720)我们拷贝C:\RT-ThreadStudio\repo\Extract\Board_Support_Packages\RealThread\STM32F429-ATK-APOLLO\0.1.0\rtt_default_project_0\board\ports\phy_reset.c到driver下

        手头开发板对复位管脚进行了调整,修改phy_reset.c内容如下

#include <rtthread.h>
#include "rtdevice.h"
#include "drv_common.h"#define LAN_RST    GET_PIN(H, 8)void phy_reset(void)
{rt_pin_write(LAN_RST,PIN_LOW);rt_thread_mdelay(100);rt_pin_write(LAN_RST,PIN_HIGH);rt_thread_mdelay(100);
}

   6、下载验证

        本地IP设置如下

         下载串口打印信息如下

         打开CMD使用ping命令进行测试

 6、源码

https://gitee.com/wangchief/touch-gfx.giticon-default.png?t=M1L8https://gitee.com/wangchief/touch-gfx.git

        

  相关解决方案