【rt-thread难点指南】以太网配置
本文以以太网口LAN8720A、MCU型号为stm32f407为例,介绍以太网配置步骤。如果有问题或建议,欢迎留言或邮件[email protected]沟通。
一、cubemx配置
1.通过rt-studio打开cubemx
2.打开connectivity,选择ETH
3.选择mode为RMII
4.选择自己板子对应的引脚
具体引脚自己参考自己板子的原理图,这里以我的板子原理图为例。注意PD3为以太网接口复位引脚,这里先不对其进行配置。
修改Ethernet MAC Address 可以修改mac地址,这里保持默认。
保持默认
5.选择不要生成main()
6.生成代码
cubemx其余选项不用管,点击生成代码
二、rt-studio配置
1.点击确认,并编译
我们编译直接过了,你编译没过也不要紧,跟着步骤来就行/
2.配置board.h
按照英文提示去掉注释
/*-------------------------- ETH CONFIG BEGIN --------------------------*/
/** if you want to use eth you can use the following instructions.
*
* STEP 1, define macro related to the eth
* such as BSP_USING_ETH
*
* STEP 2, copy your eth init function from stm32xxxx_hal_msp.c generated by stm32cubemx to the end if board.c file
* such as void HAL_ETH_MspInit(ETH_HandleTypeDef* heth)
*
* STEP 3, modify your stm32xxxx_hal_config.h file to support eth peripherals. define macro related to the peripherals
* such as #define HAL_ETH_MODULE_ENABLED
*
* STEP 4, config your phy type
* such as #define PHY_USING_LAN8720A
* #define PHY_USING_DM9161CEP
* #define PHY_USING_DP83848C
* STEP 5, implement your phy reset function in the end of board.c file
* void phy_reset(void)
*
* STEP 6, config your lwip or other network stack
*
*/
#define BSP_USING_ETH
#ifdef BSP_USING_ETH
#define PHY_USING_LAN8720A
/*#define PHY_USING_DM9161CEP*/
/*#define PHY_USING_DP83848C*/
#endif
/*-------------------------- ETH CONFIG END --------------------------*/
3.打开RT-Thread Settings
4.RT-Thread Settings配置
使能以太网物理层驱动
打开网络配置,如下图(内部参数保持默认)
5.保存退出,打开board.c
添加如下代码
这以太网上电的时候系统会自动调用这个函数,这里要补全,不然会报错,还记得我在前面说的我的以太网模块复位引脚是PD3吗
#include <pin.h>
#define RESET_IO GET_PIN(D, 3)
void phy_reset(void)
{
rt_pin_mode(RESET_IO, PIN_MODE_OUTPUT);
rt_pin_write(RESET_IO, PIN_HIGH);
rt_thread_mdelay(50);
rt_pin_write(RESET_IO, PIN_LOW);
rt_thread_mdelay(50);
rt_pin_write(RESET_IO, PIN_HIGH);
}
如果提示找不到pin.h文件,请注意是否打开pin设备驱动程序
6.修改部分文件
a.修改phy.h
我们打开phy.h,路径如下图
注释掉32行
b.修改main.c
我们打开main.c,路径如下
删除
删除整个函数
删除整个函数
d.修改stm32f4xx_hal_conf.h
取消掉串口的注释
7.编译常见错误
如果提示找不到pin.h文件,请关注include路径,这个文件是在这个位置。
如果出现如下错误,请关注这里是否已打开注释。
8.运行结果
a.编译结果
b.运行结果
请确保你的以太网口,已经连通网络
ifconfig 获取当前设备ip
ping工具–常见网络测试工具