如何打印 Integer 和 String Arduino?
How to print Integer alongside String Arduino?
我正在尝试在字符串旁边打印一个整数,但它并没有真正解决问题,我感到很困惑。
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 试过了,但是 returns 这个错误:
重载 'println(const char [14], int&)' 的调用不明确
任何人都可以帮助我,我想在不使用任何库的情况下以一种干净的方式实现这一目标。
Arduino 字符串 class 和常规 C 字符串之间存在巨大差异。
第一个重载了加法运算符,但几乎过度使用了动态内存。主要是如果你使用类似的东西:
String sth = String("blabla") + intVar + "something else" + floatVar;
更好的是使用:
Serial.print("Series : ");
Serial.println(cmdSeries);
顺便说一句,这个字符串文字驻留在闪存和 RAM 内存中,所以如果你想强制只使用闪存:
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";
它单独打印每个部分,没有串联。
试试这个
int cmdSeries = 3;
Serial.println(String("Series : ") + cmdSeries);
我正在尝试在字符串旁边打印一个整数,但它并没有真正解决问题,我感到很困惑。
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 试过了,但是 returns 这个错误: 重载 'println(const char [14], int&)' 的调用不明确
任何人都可以帮助我,我想在不使用任何库的情况下以一种干净的方式实现这一目标。
Arduino 字符串 class 和常规 C 字符串之间存在巨大差异。 第一个重载了加法运算符,但几乎过度使用了动态内存。主要是如果你使用类似的东西:
String sth = String("blabla") + intVar + "something else" + floatVar;
更好的是使用:
Serial.print("Series : ");
Serial.println(cmdSeries);
顺便说一句,这个字符串文字驻留在闪存和 RAM 内存中,所以如果你想强制只使用闪存:
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";
它单独打印每个部分,没有串联。
试试这个
int cmdSeries = 3;
Serial.println(String("Series : ") + cmdSeries);