RT-Thread STM32H743 NUCLEO 以太网
Posted 姚家湾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RT-Thread STM32H743 NUCLEO 以太网相关的知识,希望对你有一定的参考价值。
初次使用RT-Thread OS 遇到的问题真不少!这里谈谈STM32H743 NUCLEO 以太网的调试过程
BSP 包居然不支持Ethernet
总以为RT-Thread 提供了STM32H743 板支持包,事情会简单一点,结果发现居然不支持Ethernet。而且支持的硬件非常少。
自己动手配置的过程
1 在board 文件夹的Kconfig 中添加
menu "On-chip Peripheral Drivers"
config BSP_USING_GPIO
bool "Enable GPIO"
select RT_USING_PIN
default y
menuconfig BSP_USING_UART
bool "Enable UART"
default y
select RT_USING_SERIAL
if BSP_USING_UART
config BSP_USING_UART3
bool "Enable UART3"
default y
endif
menuconfig BSP_USING_ETH
bool "Enable Ethernet"
default n
select RT_USING_LWIP
if BSP_USING_ETH
config ETH_RESET_PIN
string "ETH RESET PIN"
default "PA.3"
endif
if BSP_USING_ETH
choice
prompt "Choose ETH PHY"
default PHY_USING_LAN8720A
config PHY_USING_LAN8720A
bool "USING LAN8720A"
default n
endchoice
endif
2 在rtconfig.h 文件中添加
/* On-chip Peripheral Drivers */
#define BSP_USING_GPIO
#define BSP_USING_UART
#define BSP_USING_UART3
#define BSP_USING_ETH
#define ETH_RESET_PIN "PA.5"
#define PHY_USING_LAN8720A
3 将 art ip 项目中的 libararies driver 中的 drv_eth.c 和 drv_eth.h 替代 STM32H743 项目 libaries HAL_Drvier中的drv_eth.c和drv_eth.h
4 使用STM32 CubeMX 生成 STM32F743 NUCELO 板的项目
注意:Ethernet global interrupt Enabled
将 stm32h7xx_hal_msp.c 中的void HAL_ETH_MspInit(ETH_HandleTypeDef* heth)拷贝到RT Thread studio 项目的 board -> CubeMX_Config ->src 的stm32h7xx_hal_msp.c 中。
打开 RT Thread settings 中的网络,IP 地址选择和路由器地址在同一个网段。
5 编译,下载,在PC 机上可以ping 通 NUCELO 板。
6 不知道为什么 msh 没有iconfig 命令。
结束语
吐槽一下!
- 不知道为什么RT-Thread 为什么不把BSP 包搞得完善一点,对于他们而言,好像也不难。
- RT-Thread 社区不活跃,没有人完整地提出解决方法。
- RT-Thread 不同的BSP 的文件目录结构和名称都不同。使人困惑。
- 依葫芦画瓢比较简单,自己独立搞点不同的东西就很难。
- RT-Thread ,进步的空间还很大!
以上是关于RT-Thread STM32H743 NUCLEO 以太网的主要内容,如果未能解决你的问题,请参考以下文章
基于STM32H743芯片和SOEM的EtherCAT主站源码