我的Arduino +以太网盾WebServer草图有时无法连接到客户端。原因是什么?
问题描述:
我Arduino的Web服务器偶尔草图上失败:我的Arduino +以太网盾WebServer草图有时无法连接到客户端。原因是什么?
EthernetClient client = server.available();
if (client)
今天上午,它连接在第一次运行就好了。现在,它无法再连接到客户端。几天前,它工作了好几次,但也失败了好几次。我通过以太网电缆将屏蔽层连接到我的家庭路由器。我已验证分配给Arduino的IP地址。我试过端口80和8080.什么可能会出错,我还可以尝试什么?我的ISP可以在这里阻塞什么吗?请不要害怕提出明显的,因为我几乎不了解网络。
如果相关,这里是一块较大的代码,其中循环上
Serial.println("Listening");
代码:
#include <SPI.h>
#include <Ethernet.h>n
// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0xF7, 0x99 };
IPAddress ip(192,168,2,5);
// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);
String roundOpenTag = "";
String roundCloseTag = "";
void setup()
{
// Start the Ethernet connection and the server:
Ethernet.begin(mac, ip);
server.begin();
int ledPin = 8;
// Initialize the digital pin as an output.
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
Serial.println("Setting up");
}
void loop()
{
// Listen for incoming clients
EthernetClient client = server.available();
Serial.println("Listening");
if (client)
{
Serial.println("Server available");
// An HTTP request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
Serial.println("Client connected");
if (client.available())
{
char c = client.read();
我看不到目的,包括草图的其余部分。我非常感谢你的帮助。
答
你的setup()函数中有一个空的Seiral.begin()。尝试删除它。
编辑:
当你调用Serial.begin(),你必须提供在要传达的baut率(速度)。您可以在Arduino library page阅读更多关于该功能的信息。
你必须在你的代码
- 两个问题你有一个空Serial.begin()函数调用,不带任何参数
- 你不得不重复Serial.begin()函数。您已经在setup()函数的开头指定了它。
我注释掉了 - Serial.begin(9600); - 以及所有后续的连续打印输出,并且它再次始终如一地工作。我对此没有任何解释。 – cmac 2012-04-09 03:15:17