【麦步智能手表与mega pi】enc28j60调试-客户端输出字符
接上一篇帖子【麦步智能手表与mega pi】enc28j60调试-ping实验-Arduino中文社区 http://www.arduino.cn/thread-23030-1-1.html
接线见如上帖子
程序中通过arduino访问该网页http://www.lucadentella.it/demo/aphorisms.php,每次连接后随机返回一句格言,网站如下
程序如下
#include <EtherCard.h>
static byte mymac[] = {0x74,0x69,0x69,0x2D,0x30,0x31};
byte Ethernet::buffer;
static uint32_t timer;
char website[] PROGMEM = "www.lucadentella.it";
static void response_callback (byte status, word off, word len) {
Serial.print((const char*) Ethernet::buffer + off + 259);
}
void setup () {
Serial.begin(57600);
Serial.println("");
if (!ether.begin(sizeof Ethernet::buffer, mymac, 10))
Serial.println( "Failed to access Ethernet controller");
else
Serial.println("Ethernet controller initialized");
if (!ether.dhcpSetup())
Serial.println("Failed to get configuration from DHCP");
else
Serial.println("DHCP configuration done");
ether.printIp("IP:", ether.myip);
ether.printIp("GW:", ether.gwip);
ether.printIp("DNS: ", ether.dnsip);
if (!ether.dnsLookup(website))
Serial.println("DNS failed");
else
Serial.println("DNS resolution done");
ether.printIp("SRV: ", ether.hisip);
}
void loop() {
ether.packetLoop(ether.packetReceive());
if (millis() > timer) {
timer = millis() + 5000;
Serial.println();
Serial.print("<<< REQ ");
ether.browseUrl(PSTR("/demo/"), "aphorisms.php", website, response_callback);
}
}
EtherCard库提供了一个非常方便的browseUrl()方法来连接网站。通过我们之前在loop()中介绍过的两条指令完成建立连接的准备工作。当准备工作完成后执行该指令。
如果想访问特定IP,添加IP地址到字符数组里面
char website[] PROGMEM = "192.168.1.2";
串口输出如下,包括IP、网关、子网掩码、DNS服务器地址等,输出名言警句
复位后输出信息有缺失,估计和缓冲区编译地址设置有关
程序中网址换成www.baidu.com,输出如下,不明白ISO-8859
查了下补充一下,类似ASCII编码
ISO/IEC 8859-1,又称Latin-1或“西欧语言”,是国际标准化组织内ISO/IEC 8859的第一个8位字符集。它以ASCII为基础,在空置的0xA0-0xFF的范围内,加入192个字母及符号,藉以供使用变音符号的拉丁字母语言使用。
格言意思是
“如果这是理所当然的一切” 原句应该是
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
看来确实偏移地址写大了 将返回的IP地址查询一下,哈哈,百度
页:
[1]