【问题标题】:I am trying to make an Object in Arduino but got an error我正在尝试在 Arduino 中制作一个对象但出现错误
【发布时间】:2018-08-24 10:26:41
【问题描述】:

我正在尝试在 Arduino 中创建一个对象,但我在设置 myObject 时出错。

struct myObject {
  char dataA[32];
  char dataB[32];
};

make_object("Hello","World");


void make_object(String strText1, String strText2){


  myObject vars = { 
     strText1,                 // here are my errors
     strText2                  // here are my errors  
  };
  Serial.println(vars.dataA);
  Serial.println(vars.dataB);
} 

错误是:

不存在从“String”到“char”的合适转换函数

有人知道如何解决这个问题吗?

【问题讨论】:

    标签: c++ string object arduino type-conversion


    【解决方案1】:

    string.toCharArray(buf, len) function 似乎很有用。

    void make_object(String strText1, String strText2){
    
    
      myObject vars;
      strText1.toCharArray(vars.dataA, sizeof(vars.dataA));
      strText2.toCharArray(vars.dataB, sizeof(vars.dataB));
      Serial.println(vars.dataA);
      Serial.println(vars.dataB);
    }
    

    【讨论】:

      【解决方案2】:

      @MikeCAT

      非常感谢。

      在您的帮助下,我能够将 SSID 对象存储到 EEPROM

      struct wifiConn {
        char eSsid[32];
        char ePasw[32];
      };
      
      void write_wifi_toEEPROM(uint8_t startAddr, String strSSID, String strPW){
        wifiConn vars;
        strSSID.toCharArray(vars.eSsid, sizeof(vars.eSsid));
        strPW.toCharArray(vars.ePasw, sizeof(vars.ePasw));
        EEPROM.put(startAddr, vars);
        EEPROM.commit();  
      }
      wifiConn read_wifi_fromEEPROM(uint8_t startAddr){
        wifiConn readEE;        //Variable to store custom object read from EEPROM.
        EEPROM.get(startAddr, readEE);
        Serial.println("Read ssid object from EEPROM ");
        return readEE;    
      }
      

      我希望代码也能帮助其他用户。

      【讨论】:

        猜你喜欢
        • 2020-10-29
        • 1970-01-01
        • 2022-11-13
        • 2022-01-21
        • 2023-02-14
        • 2020-09-15
        • 2022-01-04
        • 2023-02-10
        • 2020-12-21
        相关资源
        最近更新 更多