发 帖  
原厂入驻New
[问答] 51单片机+W5500上网模块资料,有程序,原理图。程序中有一处不理解,请高手解惑
788 单片机
分享
易信的w5500网络模块,淘宝上有卖。51程序,芯片资料及网络模块原理图如附件所示。现在正在看厂家给的程序,其中有部分看不懂,请了解的高手解惑。/*******************************************************************************
* 函数名  : Detect_Gateway
* 描述    : 检查网关服务器
* 输入    : 无
* 输出    : 无
* 返回值  : 成功返回TRUE(0xFF),失败返回FALSE(0x00)
* 说明    : 无
*******************************************************************************/
unsigned char Detect_Gateway(void)
{
        unsigned char ip_adde[4];
        ip_adde[0]=IP_Addr[0]+1;
        ip_adde[1]=IP_Addr[1]+1;
        ip_adde[2]=IP_Addr[2]+1;
        ip_adde[3]=IP_Addr[3]+1;


        //检查网关及获取网关的物理地址
        Write_W5500_SOCK_4Byte(0,Sn_DIPR,ip_adde);//向目的地址寄存器写入与本机IP不同的IP值
        Write_W5500_SOCK_1Byte(0,Sn_MR,MR_TCP);//设置socket为TCP模式
        Write_W5500_SOCK_1Byte(0,Sn_CR,OPEN);//打开Socket        
        Delay(5);//延时5ms         
        
        IF(Read_W5500_SOCK_1Byte(0,Sn_SR) != SOCK_INIT)//如果socket打开失败
        {
                Write_W5500_SOCK_1Byte(0,Sn_CR,CLOSE);//打开不成功,关闭Socket
                return FALSE;//返回FALSE(0x00)
        }


        Write_W5500_SOCK_1Byte(0,Sn_CR,CONNECT);//设置Socket为Connect模式                                                


        do
        {
                unsigned char j=0;
                j=Read_W5500_SOCK_1Byte(0,Sn_IR);//读取Socket0中断标志寄存器
                if(j!=0)
                Write_W5500_SOCK_1Byte(0,Sn_IR,j);
                Delay(5);//延时5ms
                if((j&IR_tiMEOUT) == IR_TIMEOUT)
                {
                        return FALSE;        
                }
                else if(Read_W5500_SOCK_1Byte(0,Sn_DHAR) != 0xff)
                {
                        Write_W5500_SOCK_1Byte(0,Sn_CR,CLOSE);//关闭Socket
                        return TRUE;                                                        
                }
        }while(1);
}
1,上面代码中,第一段红色代码中Sn_IR为Socket n中断寄存器,应为只读寄存器,为何会出现写该寄存器??
2,第二段蓝色代码中,else if(Read_W5500_SOCK_1Byte(0,Sn_DHAR) != 0xff)这句是读取Socket 0寄存器的目的MAC地址值,该值与0xff有什么关系?为什么不等于0xff就判断返回成功呢?

0

YIXIN_W5500模块用户手册.pdf

下载积分: 积分 -1 分

1.89 MB, 下载次数: 93, 下载积分: 积分 -1 分

YIXIN_W5500_V1.0原理图.pdf

下载积分: 积分 -1 分

247.44 KB, 下载次数: 80, 下载积分: 积分 -1 分

51单片机程序例程.zip

下载积分: 积分 -1 分

248.3 KB, 下载次数: 91, 下载积分: 积分 -1 分

2020-2-14 16:54:27   评论 分享淘帖 邀请回答
2个回答
2020-2-14 21:35:51 评论

举报

需要软件清除中断标志位吧
2020-2-15 09:10:02 评论

举报

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

高级模式
您需要登录后才可以回帖 登录 | 注册

我要提问
关闭

站长推荐 上一条 /6 下一条

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