Arduino WiFi盾牌停止在WiFi.status()工作

时间:2012-12-07 04:13:09

标签: arduino

更新: 我确定了问题的来源。为了避免任何复杂化,我使用ScanNetwork示例,所以我甚至不必放入SSID。一旦命中WiFi.status(),代码就会在电路板上停止运行。 在尝试获取Serial.println之前和之后我有WiFi.status(),之后没有执行serial.println,当然,我仍然没有连接。

我已经下载了代码的新副本,情况保持不变。我真的没想到了......


我正在使用官方的arduino wifi屏蔽,我有以下代码:

status = WiFi.begin([ssid],[pass]);
Serial.println(status);

状态既不是WL_CONNECTED也不是WL_IDLE_STATUS,这是官方参考http://arduino.cc/en/Reference/WiFiBegin中列出的两个可能的回复

状态是数字4。 当然,我无法连接到wifi。 这是什么????

我已按下重置按钮一百万次,是否有更强大的出厂恢复按钮?

2 个答案:

答案 0 :(得分:4)

enter image description here

我已经弄清楚了。 显然,有一个跳线,当你把它放入时,它会将屏蔽放入DFU模式,从而实现重新编程。并且结果不会出现盾牌。

答案 1 :(得分:2)

根据WiFi.h begin()函数的返回值(所有三个函数,每个安全方案一个)是int s。它没有直接说明这个函数,但我相信与status()函数一样,返回类型是wl_status_twl_status_t是在wl_definitions.h As:

中声明的枚举
typedef enum {
        WL_NO_SHIELD = 255,
        WL_IDLE_STATUS = 0,
        WL_NO_SSID_AVAIL,
        WL_SCAN_COMPLETED,
        WL_CONNECTED,
        WL_CONNECT_FAILED,
        WL_CONNECTION_LOST,
        WL_DISCONNECTED
} wl_status_t;

所以4WL_CONNECT_FAILED。你可能不会对此感到惊讶,因为你的连接失败了。

hobbiest的调试器,AKA重置按钮,只会做这么多。打印状态是一个良好的开端。确保您使用begin()的正确风格的安全类型,您似乎正在使用WPA的那个。考虑完全关闭路由器的安全性(如果在您所在的地区安全),或者使用备用路由器,以测试屏蔽完全通信的能力。这听起来很明显,但要检查SSID的拼写错误。