如何在String Arduino旁边打印整数?

时间:2017-04-10 14:04:35

标签: arduino arduino-ide

我正在尝试在字符串旁边打印一个整数,但它并没有真正解决问题并且让我感到困惑。

int cmdSeries = 3;

Serial.println("Series : " + cmdSeries);// That's where the problem occur

在visual basic中,我们习惯这样做:

Dim cmdSeries As Integer
Console.Writeline(""Series : {0}", cmdSeries)

所以我用Serial.println尝试了它,但是它返回了这个错误: 调用重载' println(const char [14],int&)'含糊不清

任何人都可以帮助我,我想在不使用任何库的情况下以干净的方式实现这一目标。

2 个答案:

答案 0 :(得分:4)

Arduino String类和常规C字符串之间存在巨大差异。 第一个重载加法运算符,但几乎过度使用动态内存。主要是如果你使用类似的东西:

String sth = String("blabla") + intVar + "something else" + floatVar;

更好的是使用:

Serial.print("Series : ");
Serial.println(cmdSeries);

顺便说一下,这个字符串文字驻留在Flash和RAM内存中,所以如果你想强制只使用flash:

Serial.print(F("Series : "));

但仅适用于基于AVR的Arduinos。如果你使用大量的文字,这个宏可以节省大量的RAM。

编辑: 有时我用这个:

template <class T> inline Print & operator<<(Print & p, const T & val) {
  p.print(val);
  return p;
}

// ...

Serial << F("Text ") << intVar << F("...") << "\n";

它分别打印每个部分,没有连接。

答案 1 :(得分:1)

尝试一下

int cmdSeries = 3;
Serial.println(String("Series : ") + cmdSeries);