我正在使用Arduino IDE完成Sketch并且能够在UNO上运行它,我必须使用C char[]
。这对我来说并不容易,不久之前我就已经问过这个问题了。
我需要通过连接较小的部分来创建更长的char[]
。到目前为止,我已经能够做到这样:
//Declarations
#define TARGET_IP "184.106.153.149"
//Methods
void randomMethod(){
strcpy(foo, "AT+CIPSTART=\"TCP\",\"");
strcat(foo, TARGET_IP);
strcat(foo, "\",80\r\n");
Serial.println(foo);
}
然而在我的代码中我有很多静态字符串占用大部分2K RAM内存,所以我想使用PROGMEM 所以我尝试了以下内容:
//Declarations
#define TARGET_IP "184.106.153.149"
static const char targetIp[] PROGMEM = TARGET_IP;
//Methods
void randomMethod(){
strcpy(foo, "AT+CIPSTART=\"TCP\",\"");
strcat(foo, targetIp);
strcat(foo, "\",80\r\n");
Serial.println(foo);
}
在串行监视器上打印时,第一个片段工作正常,而第二个片段则不然。
我一直试图谷歌,但无济于事。
你们和gals的任何进一步教育都会非常感激。 提前谢谢!