CH32F208 做TCP SERVER 重置IP问题。
在PHY已经连接上,mcu作为TCP SERVER, 已经用某IP地址初始化过了,在已经被主机连接或者不连接的情况下,
假如更改MCU的IP地址,主机来连接改过地址后的SERVER,一直连不上,但是只要拔插一下网线就可以了,这个情况软件怎么处理达到 不重启芯片自动能被主机重连上?
CH32F208 做TCP SERVER 重置IP问题。
在PHY已经连接上,mcu作为TCP SERVER, 已经用某IP地址初始化过了,在已经被主机连接或者不连接的情况下,
假如更改MCU的IP地址,主机来连接改过地址后的SERVER,一直连不上,但是只要拔插一下网线就可以了,这个情况软件怎么处理达到 不重启芯片自动能被主机重连上?
补充一下,改过以后,重新初始化了一下,执行下面代码:
WCHNET_GetMacAddr(MACAddr); //get the chip MAC address
i = ETH_LibInit(IPAddr, GWIPAddr, IPMask, MACAddr); //Ethernet library initialize
mStopIfError(i);
if (i == WCHNET_ERR_SUCCESS)
{
// printf("WCHNET_LibInit Success\r\n");
#if KEEPALIVE_ENABLE //Configure keep alive parameters
{
struct _KEEP_CFG cfg;
cfg.KLIdle = 20000;
cfg.KLIntvl =1000;// 15000;
cfg.KLCount = 1;//9
WCHNET_ConfigKeepLive(&cfg);
}
#endif
memset(socket, 0xff, WCHNET_MAX_SOCKET_NUM);
WCHNET_CreateTcpSocketListen(); //Create TCP Socket for Listening
您好,
1.在更改208的本地IP前,需要调用WCHNET_SocketClose函数关闭已打开的socket。
2.再次调用ETH_LibInit函数后需调用ETH_PHYLink函数重新建立PHY的连接。
多谢,测试了可以的