"conversion from void to non scalar type string"是什么意思?

what is meaning of "conversion from void to non scalar type string"?

本文关键字:string 是什么 意思 type non conversion from void to scalar      更新时间:2023-10-16

我想使用 sim900a 模块和 arduino uno 通过短信将 GPS 坐标发送到特定号码,当他们从短信(如"发送 GPS"(请求时,这里编写了代码,但是当我编译代码时,我收到"错误:请求从'void'转换为非标量类型'字符串'".....请任何帮助不胜感激...提前谢谢你

void loop() {
    RecieveMessage();
    if (sim.available() > 0)
    {
        Serial.write(sim.read());
    }
    if(sim.read()=="SEND GPS")
    {
        SendMessage();
    }
}
void RecieveMessage()
{
    Serial.println ("SIM800L Read an SMS");
    sim.println("AT+CNMI=2,2,0,0,0");
    Serial.write ("Unread Message done");
}
void SendMessage()
{
    //Serial.println ("Sending Message");
    sim.println("AT+CMGF=1");
    sim.println("AT+CMGS="" + number + ""r");
    while (sgps.available())
    {
        int c = sgps.read();
        if (gps.encode(c))
        {
            float slat,slon;
            String loc=gps.f_get_position(&slat, &slon);
        }
        String SMS = String("http://maps.google.com/maps?q=loc:")+String(loc);
        sim.println(SMS);
        sim.println((char)26);
    }

gps.f_get_position返回 void,但您正在将其分配给String。只需删除String loc=

void loop()
{
  while (sgps.available())
  {
    int c = sgps.read();
    if (gps.encode(c))
    {
      float slat,slon;
      gps.f_get_position(&slat, &slon);
      Serial.print("Latitude :");
      Serial.println(slat, 6);
      Serial.print("Longitude:");
      Serial.println(slon, 6);
    
      String loc = String(slat,6)+" "+String(slon,6);
      Serial.println ("Sending Message");
      sim.println("AT+CMGF=1");    //Sets the GSM Module in Text Mode
      delay(1000);
      Serial.println ("Set SMS Number");
      sim.println("AT+CMGS="" + number + ""r"); //Mobile phone number to send message
      delay(1000);
      String SMS = String("https://www.google.com/maps/") + String(slat,6)+","+String(slon,6);
      sim.println(SMS);
      delay(100);
      sim.println((char)26);// ASCII code of CTRL+Z
      delay(1000);
      _buffer = _readSerial();
    }
  }
}
相关文章: