Arduino(NodeMcu)上传程序时出现“上传错误:exit status 2”
总结:个人分析的导致这种情况的根本原因
由于上传数据的端口被占用:例如外部使用串口调试助手查看串口输出的数据
源程序
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println("test");
delay(1000);
}
上传程序时出现下面的报错信息
本来以为是因为串口循环显示导致内存不够。但查看报错信息中发现还有很大占比的容量没使用。
. Variables and constants in RAM (global, static), used 28096 / 80192 bytes (35%)
║ SEGMENT BYTES DESCRIPTION
╠══ DATA 1496 initialized variables
╠══ RODATA 928 constants
╚══ BSS 25672 zeroed variables
. Instruction RAM (IRAM_ATTR, ICACHE_RAM_ATTR), used 43379 / 65536 bytes (66%)
║ SEGMENT BYTES DESCRIPTION
╠══ ICACHE 16384 reserved space for flash instruction cache
╚══ IRAM 26995 code in IRAM
. Code in flash (default, ICACHE_FLASH_ATTR), used 236084 / 1048576 bytes (22%)
║ SEGMENT BYTES DESCRIPTION
╚══ IROM 236084 code in flash
esptool.py v3.0
Serial port COM5
上传失败: 上传错误:exit status 2
第一种情况:完全在Arduino IDE上上传数据时
即使打开了串口通信,在上传程序时,串口通信也会自动关闭。 所以只是在IDE中查看串口和上传程序,都不会出现问题。
第二种情况:使用外部串口助手查看数据
首先,可以确定的是:只要外部串口助手中设置的参数和程序中设置的参数一致,那么串口助手也是可以查看数据的收发的。但在使用外部串口助手查看数据收发时,若同时上传程序就会出现错误。主要原因还是串口被占用。同理,当进行程序上传时,外部串口就算是设置合适的参数也依然不能正常读取串口发送数据