OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7232|回复: 4

STM32H750 LAN 8720 网络通讯出现问题

[复制链接]

4

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
289
金钱
289
注册时间
2015-10-7
在线时间
32 小时
发表于 2020-8-1 11:07:19 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 伟好好学习 于 2020-8-22 21:22 编辑

各位调试网络通讯的大神们好,我自己做了个PCB板,主控为STM32H750 VBT6   , 使用LAN8720 芯片,没有外接的SDRAM和NANDFLASH,使用原子的网络通讯例程调试。硬件电路和原子的一样,电容电阻也一样。相应管脚配置如图1-LAN8720芯片IO选择所示,其中PC0接到了LAN8720芯片的nRST引脚上,标号为(ETH_RESET)。
按照原子的程序移植,我把LAN8720的GPIO配置换成了自己板子的相应IO口,如图2-程序中LAN8720的GPIO配置。
主程序里我改写成图3-main函数,程序卡到lwip_comm_init()函数里的向网卡列表中添加一个网口函数里,函数名为:Netif_Init_Flag=netif_add(&lwip_netif,&ipaddr,&netmask,&gw,NULL,eernetif_init,eernet_input);//向网卡列表中添加一个网口,如图4所示。
想请问做过网络编程的大神们为啥程序会卡到这里。通过串口助手发送的数据可以看到程序一直卡到该位置。如图5.
我的硬件环境是:在程序运行前已经将网线与路由器相连,下载程序后,网口上的两个LED一直不亮。求告知原因。
我的工程已上传附件。同时我也上传了原子的实验62 的工程文件。烦请大神给指点一下。
小弟先谢过了。
补充一下,我只需要测试UDP功能,所以我的主函数里只udp_demo_test();进行了这个函数的初始化。
这个工程是否需要外部SDRAM与NAND FLASH?我自己做的板子上没有外部的SDRAM和NAND FLASH。
大神们,可以先看看我的硬件电路有啥问题不。我自己做的板子上面没有外部SDRAM和NAND FLASH。




LAN8720芯片IO选择

LAN8720芯片IO选择

程序中LAN8720的GPIO配置

程序中LAN8720的GPIO配置

main函数

main函数

程序卡住的地方

程序卡住的地方

串口助手接收到的数据

串口助手接收到的数据

硬件电路图

硬件电路图

网口电路图

网口电路图

网络测试程序.rar

15.09 MB, 下载次数: 69

自己的工程文件

实验62 网络通信实验.zip

3.55 MB, 下载次数: 12

原子可以编译通过的工程文件

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

1061

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
3620
金钱
3620
注册时间
2019-8-14
在线时间
1053 小时
发表于 2020-8-1 12:39:01 | 显示全部楼层
回复

使用道具 举报

4

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
289
金钱
289
注册时间
2015-10-7
在线时间
32 小时
 楼主| 发表于 2020-8-1 12:51:22 | 显示全部楼层
本帖最后由 伟好好学习 于 2020-8-2 09:45 编辑

我在想是不是与这个有关系?  后面我找到有关答案,LWIP开发手册上说必须放在这个地址里。所以可能不是这的原因了。

以太网描述符与缓冲区地址

以太网描述符与缓冲区地址

LWIP开发手册中说必须要放到这里

LWIP开发手册中说必须要放到这里
回复

使用道具 举报

4

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
289
金钱
289
注册时间
2015-10-7
在线时间
32 小时
 楼主| 发表于 2020-8-2 10:42:16 | 显示全部楼层
本帖最后由 伟好好学习 于 2020-8-2 10:57 编辑

还有一个原因是不是因为 FLASH不够?我编译后的HEX文件是135KB,而VBT6的FLASH只有128KB。但是我看了一篇文章说
1、flhex文件其实是个格式规范的文本文件。程序代码

大小与hex文件大小没有绝对的关联性,因为我们在用串

口下载程序时一般都是用的hex文件下载,,所以大家会

以为hex文件大小和flash大小息息相关,hex文件大小超

过了flash大小就会出问题,我也以为是这样,直到最近

我发现有hex文件大于flash的大小但是依然可以写进去,

因为真正烧写进去的是二进制文件,在hex文件中包含了

bin文件的信息

2、hex文件大小和bin文件大小没有决定性关系

  hex文件内容很多,其中就包含了bin文件二进制的内容,

所有很多软件都能直接把hex文件转化成bin文件,烧写进flash

的文件不是hex而是一堆bin文件

3、flash大小和bin文件大小息息相关

  bin文件就是完全的程序文件,里面包含了所有的程序

内容,bin文件烧写进flash就可以执行,可以用STlink进

入仿真查看相关的flash,就是bin文件内容



然后我用KEIL将自己工程bin文件生成后,只有49kb,按照上面的说法的话,那FLASH应该就够啊!

回复

使用道具 举报

0

主题

7

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
203
金钱
203
注册时间
2019-8-2
在线时间
59 小时
发表于 2023-4-25 11:13:55 | 显示全部楼层
解决了没有?我也在做这个,解决了发我一份
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-19 14:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表