我正在尝试建立一个TCP服务器,但模块在几秒钟后自动重置。
我在 UART 中获取这些日志。
ets 2013-01-8,第一个原因:4,开机模式:(3,6)
WDT 复位
负载0x3ffe8000,LEN 876,16 室
尾 12
Chksum 0x07
Ho 0 尾 12 房间 4
负载0x3ffe8370,LEN 624,12 室
尾巴 4
Chksum 0x87
负载0x40100000,LEN 28528,4 室
尾 12
Chksum 0x84
CSUM 0x84
这是我的代码:
法典:
全选
#include
#include
#include
#include
#include
#include
#include
#include
LOCAL struct espconn esp_conn;
本地esp_tcp esptcp;
/*静态os_
timer_t s_Timer;
int s_Tick = 0;
void TimerFunction(void *arg)
{
s_Tick++;
if(GPIO_REG_READ(GPIO_OUT_ADDRESS) & BIT2)
{
gpio_output_set(0, BIT2, BIT2, 0);
}
else
{
gpio_output_set(BIT2, 0, BIT2, 0);
}
os_timer_disarm(&s_Timer);
}
void 眨眼(int x)
{
int i;
for (i = 0; i < (x * 2); i++)
{
os_timer_setfn(&s_Timer, TimerFunction, NULL);
os_timer_arm(&s_Timer, 300, 0);
}
}*/
LOCAL void ICACHE_FLASH_ATTR tcp_server_sent_cb(void *arg)
{
os_printf("nSent Successfuly");
}
LOCAL void ICACHE_FLASH_ATTR tcp_server_recv_cb(void *arg, char *pusrdata, unsigned short length)
{
os_printf("nRecieved Data : %s", pusrdata);
char *data = "ON";
int x = os_strncmp(pusrdata, data, os_strlen(data));
os_printf("nX : %d", x);
if (x == 0)
os_printf("nDevice is ON");
else
{
os_printf("nWrong Data Recieved!!!!");
//blink(1);
}
}
LOCAL void ICACHE_FLASH_ATTR tcp_server_discon_cb(void *arg)
{
os_printf("nServer Disconnected");
}
LOCAL void ICACHE_FLASH_ATTR tcp_server_recon_cb(void *arg, sint8 错误)
{
os_printf("nServer Connection Failed!! Re-connecting");
}
LOCAL void ICACHE_FLASH_ATTR tcp_server_connect(void *arg)
{
os_printf("nA Device Connected to Server");
//blink(1);
struct espconn *pesp_conn = arg;
espconn_regist_recvcb(pesp_conn, tcp_server_recv_cb);
espconn_regist_reconcb(pesp_conn, tcp_server_recon_cb);
espconn_regist_disconcb(pesp_conn, tcp_server_discon_cb);
espconn_regist_sentcb(pesp_conn, tcp_server_sent_cb);
}
无效 ICACHE_FLASH_ATTR user_tcpserver_init()
{
const char tcp_local_ip[4] = { 192, 168, 123, 101 };
esp_conn.type = ESPCONN_TCP;
esp_conn.state = ESPCONN_NONE;
esp_conn.proto.tcp = &esptcp;
esp_conn.proto.tcp->local_port = 8881;
os_memcpy(esp_conn.proto.tcp->local_ip, tcp_local_ip, 4);
espconn_regist_connectcb(&esp_conn, tcp_server_connect);
espconn_accept(&esp_conn);
os_printf("nTCP Server Established");
}
void ICACHE_FLASH_ATTR user_set_softap_config(void)
{
struct softap_config config;
wifi_softap_get_config(&config);
os_memset(config.ssid, 0, 32);
os_memset(config.password, 0, 64);
os_memcpy(config.ssid, "ESP8266", 7);
os_memcpy(config.password, "12345678", 8);
config.authmode = AUTH_WPA_WPA2_PSK;
config.ssid_len = 7;
config.beacon_interval = 100;
config.max_connection = 4;
wifi_softap_set_config(&config);
os_printf("nSoftAP Configured");
}
void user_init(void)
{
//system_soft_wdt_stop();
os_printf("nSystem Startedn");
gpio_init();
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U, FUNC_GPIO2);
gpio_output_set(BIT2, 0, BIT2, 0);
//blink(1);
if(wifi_get_opmode() != SOFTAP_MODE)
{
wifi_set_opmode(SOFTAP_MODE);
system_restart();
}
os_printf("nWifi OPMODE : SOFTAP");
user_set_softap_config();
user_tcpserver_init();
}
请帮帮我。
谢谢