tk558978 2024-01-05 17:56 采纳率: 0%
浏览 113
已结题

如何用带有lan8720的stm32开发板实现tcp/ip通信

我使用正点原子的STM32F429IGT6的开发板,上面配置了LAN8720A的以太网,如何在STM32CubeMX 1.13.1版上面实现和普通计算机通过TCP/IP进行通信?我看了一下这个版本的stm32cubemx里面配置lwip的时候只有lan8742的选项,没有8720。
我使用生成的代码烧入开发板后,直接将计算机和开发板用网线连接起来,计算机网卡设置手动配置ip地址,确保和lwip里面的手动ip在同一网段。结果我在开发板程序里面编写用udp发送数据给计算机上的接收程序,无法收到数据。win11的以太网设置上说“未连接”,且无法ping通。以下是我根据正点原子提供的资料配置的管脚

img

是否可以不需要完全靠自己从零编写lan8720的驱动也能直接达成目标呢?

  • 写回答

19条回答 默认 最新

  • 叫兽-郭老师 新星创作者: Java技术领域 2024-01-05 18:00
    关注

    引用GPT4和答主提供,参考如下:

    要在STM32F429IGT6开发板上使用LAN8720实现TCP/IP通信,您需要使用LwIP库。虽然在STM32CubeMX 1.13.1版中没有直接支持LAN8720的选项,但您可以手动配置LwIP以使用LAN8720。以下是实现此目标的步骤:

    1. 首先,确保您的开发板已正确连接到以太网接口。

    2. 下载并安装LwIP库。您可以从官方网站下载最新版本的LwIP库:https://www.segger.com/downloads/lwip/

    3. 将下载的LwIP库解压缩到您的项目文件夹中。

    4. 打开STM32CubeMX,创建一个新的工程,并将您的开发板添加到项目中。

    5. 在STM32CubeMX中配置以太网接口。选择您的开发板型号(例如STM32F429IGT6),然后配置以太网接口的MAC地址、IP地址和子网掩码。确保这些设置与您的计算机上的网络设置相匹配。

    6. 在STM32CubeMX中配置LwIP。转到“Project”菜单,然后选择“Manage Peripheral”。在弹出的窗口中,找到并启用“ETHERNET”外设。然后,转到“Configuration”选项卡,选择“LWIP”,并配置相应的参数,如缓冲区大小、线程优先级等。

    7. 生成代码并烧入开发板。现在,您应该能够在开发板上使用TCP/IP进行通信了。

    8. 编写一个接收程序,该程序将监听指定的IP地址和端口,等待接收数据。您可以使用UDP或TCP协议来实现这一点。

    9. 编写一个发送程序,该程序将通过TCP/IP向接收程序发送数据。

    10. 将接收程序和发送程序分别烧入开发板,并确保它们可以相互通信。

    虽然您可能需要自己编写一些底层代码来处理LAN8720的驱动,但这通常不是必需的。LwIP库已经包含了对大多数常见以太网控制器的支持,包括LAN8720。只要正确配置LwIP,您应该能够使用它与计算机进行TCP/IP通信。

    评论

报告相同问题?

问题事件

  • 系统已结题 1月13日
  • 修改了问题 1月8日
  • 修改了问题 1月8日
  • 创建了问题 1月5日