更新:
我确定了问题的来源。为了避免任何复杂化,我使用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。 这是什么????
我已按下重置按钮一百万次,是否有更强大的出厂恢复按钮?
答案 0 :(得分:4)
我已经弄清楚了。 显然,有一个跳线,当你把它放入时,它会将屏蔽放入DFU模式,从而实现重新编程。并且结果不会出现盾牌。
答案 1 :(得分:2)
根据WiFi.h begin()
函数的返回值(所有三个函数,每个安全方案一个)是int
s。它没有直接说明这个函数,但我相信与status()
函数一样,返回类型是wl_status_t
。 wl_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;
所以4
是WL_CONNECT_FAILED
。你可能不会对此感到惊讶,因为你的连接失败了。
hobbiest的调试器,AKA重置按钮,只会做这么多。打印状态是一个良好的开端。确保您使用begin()
的正确风格的安全类型,您似乎正在使用WPA的那个。考虑完全关闭路由器的安全性(如果在您所在的地区安全),或者使用备用路由器,以测试屏蔽完全通信的能力。这听起来很明显,但要检查SSID的拼写错误。