w5500和stm32,TCP连接服务器失败,连不上远程服务器

文章目录[隐藏]

问题:

画了一个STM32和W5500的板子,用STM32驱动W5500。
在调试W5500时,采用DHCP自动分配IP的方式,持续遇到W5500无法TCP连接服务器的问题,经过反复测试,找到问题所在。

原因:

原因在于,我在调试时,总是习惯直接将板子RESET重启,正常这样做没问题,
但是在W5500上,如果板子已经使用TCP连接上了远程服务器,此时直接断电重启,没有使用TCP连接的退出机制。
服务器就会认为板子仍然在线,从而拒绝板子再次与服务器连接。

解决方案:

两个解决方案,
1.如果你的板子上有按键,写一个按键执行TCP结束连接的程序,下一次即可正常连接
2.如果板子没有按键,那么在下次烧录程序时,

  • 如果你使用固定IP,修改IP,
  • 如果你使用的DHCP自动分配IP,修改你的MAC地址,

这样就会分配一个新的IP地址给板子,板子连接服务器时,会认为这是一个新的设备,从而允许TCP连接。

也可以参考官网,

在这里插入图片描述

总结

遇到问题,多查多看,作为嵌入式工程师,有的问题并不来源于你的代码有问题,有可能是电路的问题,有可能是驱动方式的问题。多看对应模块的Data Sheet。以及上网搜索,你遇到的问题,大概率别人也遇到过。

版权声明:本文为CSDN博主「嵌入式填坑指南」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_47485810/article/details/122279941

生成海报
点赞 0

嵌入式填坑指南

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

STM32+FreeRTOS+LWIP TCP Server多端口并发通信实例

1. 问题的提出 在LWIP的TCP Server功能的应用中,如何创建多个TCP服务器端口同时与多台客户端设备通信,或者如何在同一个TCP服务器端口下创建多个连接同时与多台客户端通信? 2. 设计

STM32+W5500网络通信

一、Modbus/TCP协议 1.查询报文 00 6D 00 00 00 06 01 03 00 00 00 01 00 6D 查询编号 00 00 协议 00 06 数据包长度 01 设备编号 03 功能码 00 00 起始地址 00 01