我正在使用 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);
}
在串行监视器上打印时,第一个片段可以正常工作,而第二个则不能。
我一直在尝试谷歌它,但无济于事。
你们的任何进一步的教育将不胜感激。提前致谢!