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

如何用带有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日

悬赏问题

  • ¥20 有偿:在ubuntu上安装arduino以及其常用库文件。
  • ¥15 请问用arcgis处理一些数据和图形,通常里面有一个根据点划泰森多边形的命令,直接划的弊端是只能执行一个完整的边界,但是我们有时候会用到需要在有很多边界内利用点来执行划泰森多边形的命令
  • ¥30 在wave2foam中执行setWaveField时遇到了如下的浮点异常问题,请问该如何解决呢?
  • ¥20 看图片)删除这个自动化录屏脚本就一直报错找不到脚本文件,如何解决?(相关搜索:bat文件)
  • ¥750 关于一道数论方面的问题,求解答!(关键词-数学方法)
  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件