写在前面:
内存不足,需要程序中腾出足够内存。
环境:
Esp8266 nonos , arduion+VSCode
现象:
在espconn_regist_connectcb()注册的连接成功回调函数中可以使用espconn_send发送。但是在回调函数外使用espconn_send发送后,服务器没有接收到数据,且发送回调没有触发。
分析:
使用如下代码分析:
i = espconn_send(&ST_NetCon, “str”, str_len);
if(0 == i){
}else if(-12 == i){
Serial.println("ESPCONN_ARG");
}else if(-1 == i){
Serial.println("ESPCONN_MEM");
}else if(-7 == i){
Serial.println("ESPCONN_MAXNUM");
}else if(-14 == i){
Serial.println("ESPCONN_IF");
}
运行后
显示ESPCONN_MEM,说明内存不足。将静态数组由1024*20改为1024*10后,可以正常发送。