【发布时间】:2016-09-15 07:11:14
【问题描述】:
我目前正在尝试让 esp8266 连接到我的 http 服务器。连接到我的本地 wifi 网络有效,但如果我尝试连接到我的服务器,我会在终端窗口中收到此错误:
致命异常 9(LoadStoreAlignmentCause): epc1=0x4026027b, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000011, depc=0x00000000
在user_init 函数中,我调用check_ip() 来处理tcp 连接,如下所示:
LOCAL void ICACHE_FLASH_ATTR check_ip(void){
struct espconn conn;
struct ip_info ipconf;
esp_tcp tcp;
uint8 ipAddr[4] = {1,2,3,4};
uint32 localPort = espconn_port();
bool res = wifi_get_ip_info(STATION_IF, &ipconf);
if(!res)
os_printf("No Success.");
else{
os_memcpy(tcp.local_ip,&ipconf.ip,4);
if(wifi_station_get_connect_status() == STATION_GOT_IP && ipconf.ip.addr != 0){
os_printf("Got IP Address.\n");
tcp.remote_port = 80;
tcp.local_port = espconn_port();
os_memcpy(tcp.remote_ip,ipAddr,4);
conn.type = ESPCONN_TCP;
conn.state = ESPCONN_NONE;
conn.proto.tcp = &tcp;
espconn_regist_connectcb(&conn,tcp_connect_cb);
espconn_regist_reconcb(&conn,tcp_recon_cb);
espconn_connect(&conn);
os_timer_disarm(&timer);
} else {
os_timer_setfn(&timer,(os_timer_func_t*)check_ip,NULL);
os_timer_arm(&timer,100,0); //recall function after 100ms, don't repeat
}
}
}
非常感谢任何帮助。
【问题讨论】:
-
请添加解决方案作为答案,而不是将其附加到您的问题中。