5117|1

27

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【 ST NUCLEO-H743ZI测评】(2)以太网测试 [复制链接]

本帖最后由 dsjsjf 于 2019-3-1 11:15 编辑


本次活动测评开发板ST NUCLEO-H743ZI由ST意法半导体提供,感谢意法半导体对EEWorld测评的支持!
STM32H7
NUCLEO_H743ZI

【 ST NUCLEO-H743ZI测评】(1)初识ST NUCLEO-H743ZI

几经周折,终于搞定了以太网。因为有STM32CUBEMX,本以为花个2个小时就能搞定的,却花了几天时间。
先说一下以前玩NUCLEO-F767ZI板以太网的吧,好作个比较,ETH配置只要把PHY Address设为0,DHCP Disabled,手动填入IP地址等,生成工程;while(1)中加入MX_LWIP_Process();就可以ping 通了。
而NUCLEO-H743ZI的配置就相对多了。下面来详细配置一下:
一、在上次工程的基础上,首先配置CORTEX-M7

二、配置ETH,使能全局中断,注意那句Warning,一会要用到

三、使能FreeRTos,保持默认配置

四、使能LWIP,Platform中选择LAN8742,General中禁用DHCP,IP地址根据自己电脑的配置

五、重新生成代码,并打开,将RAM的起始地址修改为刚才那句警告中的

六、编译运行,ping一下,可以ping通了

七,加入tcp回传测试,添加以下代码
  1. #include "stats.h"
  2. #include "lwip/api.h"
  3. #include "lwip/tcp.h"

  4. void tcp_echoserver_init(void);
  5. static err_t tcp_echoserver_accept(void *arg, struct tcp_pcb *newpcb,err_t err);
  6. static err_t tcp_echoserver_recv(void *arg, struct tcp_pcb *tpcb, struct pbuf *p,err_t
  7.                                  err);
  8. static struct tcp_pcb *tcp_echoserver_pcb;
  9. void tcp_echoserver_init(void)
  10. {
  11.   err_t err;
  12.   tcp_echoserver_pcb = tcp_new();
  13.   if(tcp_echoserver_pcb !=NULL)
  14.   {
  15.     err = tcp_bind(tcp_echoserver_pcb,IP_ADDR_ANY,7);
  16.     if(err == ERR_OK)
  17.     {
  18.       tcp_echoserver_pcb = tcp_listen(tcp_echoserver_pcb);
  19.       tcp_accept(tcp_echoserver_pcb,tcp_echoserver_accept);
  20.     }
  21.     else
  22.     {
  23.       memp_free(MEMP_TCP_PCB, tcp_echoserver_pcb);
  24.     }
  25.   }
  26. }
  27. static err_t tcp_echoserver_accept(void *arg, struct tcp_pcb *newpcb,err_t err)
  28. {
  29.   /* initialize lwip tcp_recv callback function for newpcb */
  30.   tcp_recv(newpcb, tcp_echoserver_recv);
  31.   return ERR_OK;
  32. }
  33. static err_t tcp_echoserver_recv(void *arg, struct tcp_pcb *tpcb, struct pbuf *p,err_t
  34.                                  err)
  35. {
  36.   tcp_write(tpcb,p->payload,p->len,1);
  37.   pbuf_free(p);
  38.   return ERR_OK;
  39. }
复制代码

八、在任务中添加 tcp_echoserver_init();
  1. void StartDefaultTask(void const * argument)
  2. {
  3.   /* init code for LWIP */
  4.   MX_LWIP_Init();

  5.   /* USER CODE BEGIN 5 */
  6.   tcp_echoserver_init();
  7.   /* Infinite loop */
  8.   for(;;)
  9.   {
  10.    

  11.     osDelay(1);
  12.   }
  13.   /* USER CODE END 5 */
  14. }
复制代码

九、再次编译运行,打开网络调试助手,测试OK


测试结束,但学习还未结束,知其然也要知其所以然。


此内容由EEWORLD论坛网友dsjsjf原创,如需转载或用于商业用途需征得作者同意并注明出处






09-tcp回传测试.jpg (92.73 KB, 下载次数: 0)

09-tcp回传测试.jpg
此帖出自stm32/stm8论坛

最新回复

请问按照帖子给的方法配置后编译下载ping不同,是缺少什么步骤吗?我看到例程里有两个任务,一个一直在检查phy的状态,一个在更新DHCP,请问ping在哪里处理的?   详情 回复 发表于 2019-10-11 16:17
点赞 关注(1)
 

回复
举报

2

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

请问按照帖子给的方法配置后编译下载ping不同,是缺少什么步骤吗?我看到例程里有两个任务,一个一直在检查phy的状态,一个在更新DHCP,请问ping在哪里处理的?

此帖出自stm32/stm8论坛
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表