1

我正在使用 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);

        }

在串行监视器上打印时,第一个片段可以正常工作,而第二个则不能。

我一直在尝试谷歌它,但无济于事。

你们的任何进一步的教育将不胜感激。提前致谢!

4

0 回答 0