-1

我知道有很多关于变量转换的主题,但是我在不同的论坛上花了 2 多个小时,但我找不到解决问题的方法......

我有一个代码将读取我的 ESP32 上的 SPIFFS 文件并将其写入串行监视器。(这里我们在许多网站上给出的示例代码)

但是现在我怎样才能将值发送file.read()const char*我真的需要这种格式,因为函数将接收值......

我的代码:

const char* VALUE     = "";

File file = SPIFFS.open("/test.txt");
      if(!file){
          Serial.println("Failed to open file for reading");
          return;
      }

      while(file.available()){
        Serial.write(file.read());
        VALUE = file.read();
      }
      file.close();

结果为:invalid conversion from int to const char*

4

1 回答 1

1

尝试以下操作:

char VALUE [512] = {'\0'};  // 511 chars and the end terminator if needed make larger/smaller

File file = SPIFFS.open("/test.txt");
  if(!file){
      Serial.println("Failed to open file for reading");
      return;
  }
  uint16_t i = 0;
  while(file.available()){
     VALUE [i] = file.read();
     // Serial.print (VALUE [i]); //use for debug
     i++;
  }
  VALUE [i] ='\0';
  // Serial.print (VALUE); //use for debug
  file.close();

这会将文件的内容复制到一个 char 数组中,然后可以将其用于进一步处理。如果 char 数组是全局定义的,它将被编译为闪存并防止内存碎片

于 2020-05-24T15:46:15.100 回答