在使用w5100连网时,下面程序有几句不太懂,求助-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3812|回复: 7

[已解决] 在使用w5100连网时,下面程序有几句不太懂,求助

[复制链接]
发表于 2014-3-24 08:57 | 显示全部楼层 |阅读模式
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xAA};
   
     if (Ethernet.begin(mac) == 0)
        {
          Serial.println("Failed to configure Ethernet");
          for(;;); //此句含义没有太弄懂
        }
        else
        {    Serial.println("Ethernet configuration OK");
        }

上面程序中的FOR有什么作用?
发表于 2014-3-24 09:07 | 显示全部楼层
本帖最后由 kevinzhang19701 于 2014-3-24 09:09 编辑

就是死循环在那里,因为MAC地址不正确,啥也不能做。
 楼主| 发表于 2014-3-24 09:31 | 显示全部楼层
谢谢你.
实际运行时,能正常使用.
运行中的情况是,大约1分钟内才有显示:  Ethernet configuration OK
但就是没有理解程序中:
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xAA};
   
     if (Ethernet.begin(mac) == 0)
        {
          Serial.println("Failed to configure Ethernet");
          for(;;); //此句含义没有太弄懂
        }
        else
        {    Serial.println("Ethernet configuration OK");
        }

进入死循环,不是就出不来了吗?为什么当成功时就可以出循环呢?我的理解是第一次常有不成功现象,成功了就可以进行下面的程序了.
  大家能再说明白一些吗?

发表于 2014-3-24 10:44 | 显示全部楼层
本帖最后由 kevinzhang19701 于 2014-3-24 10:47 编辑

官网是这么解释这句的:

Ethernet.begin()

Description:

Initializes the ethernet library and network settings.

With version 1.0, the library supports DHCP. Using Ethernet.begin(mac) with the proper network setup, the Ethernet shield will automatically obtain an IP address. This increases the sketch size significantly.

估计MAC从DHCP那里获得正确IP地址的时候,花了不少时间。

要不您直接指定一个IP上去试试:

Ethernet.begin(mac, ip);
发表于 2014-3-24 10:49 | 显示全部楼层
它就是死循环吧,成了才输出“Ethernet configuration OK”,你又不是先输出"Failed to configure Ethernet"成了之后又输出“Ethernet configuration OK”
 楼主| 发表于 2014-3-24 14:19 | 显示全部楼层
使用DHCP,也就是上面那段程序,能成功连接上.那也就先这样用着吧.有情况现和大家沟通吧,谢谢大家.
发表于 2014-3-24 23:59 | 显示全部楼层
根据 Ethernet.begin(mac)返回的值判断是否连接成功  如果返回的不是0就是连接成功了   返回的是0就连接不成功 然后就一直卡在for(;;)那
至于1分钟的时间应该执行 Ethernet.begin(mac)这个函数所造成的吧    里面一堆初始化函数之类的
 楼主| 发表于 2014-3-26 15:54 | 显示全部楼层
谢谢大家,我测试了下,Ethernet.begin(mac);比较慢,有时失败,Ethernet.begin(mac,ip);比较好成功率高.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-4 17:20 , Processed in 0.087228 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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