WIZnet技术专区
直播中

冬天

14年用户 8经验值
擅长:可编程逻辑 模拟技术
私信 关注
[技术问题讨论]

W5500运行Client例程时,为什么总在“关闭”和“初始化”状态?

我的W5500运行Client例程时,过去曾有发送成功的情况,具体细节记不清了。
现在运行do_tcp_client(),总在这两种情况下交替运行:
        case SOCK_CLOSED:                                                            /*socket处于关闭状态*/
            socket(SOCK_TCPC,Sn_MR_TCP,local_port++,Sn_MR_ND);
            break;

        case SOCK_INIT:                                                                    /*socket处于初始化状态*/
            connect(SOCK_TCPC,remote_ip,remote_port);   /*socket连接服务器*/
            break;

查看connect过程,运行这一段:
                        if (getSn_IR(s) & Sn_IR_tiMEOUT)
                        {
                                IINCHIP_WRITE(Sn_IR(s), (Sn_IR_TIMEOUT));  // clear TIMEOUT Interrupt
                                ret = 0;
                                break;
                        }


请大师帮忙,非常感谢!

回帖(1)

冬天

2020-4-19 11:15:27
经再次缩小范围,原来,是系统中的SDRAM读写引起的:凡有对SDRAM的操作,均会发生断线。即:对SDRAM操作后,网络就处在SOCK_CLOSED和SOCK_INIT的两种状态
1 举报

更多回帖

发帖
×
20
完善资料,
赚取积分