arduino - Arduino 如何与字符串一起打印整数?

标签 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&)”的调用不明确

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

最佳答案

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

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

更好的是使用:

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

顺便说一句,这个字符串文字驻留在闪存和 RAM 内存中,因此如果您想强制仅使用闪存:

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

但它仅适用于基于 AVR 的 Arduino。如果您使用大量文字,此宏可以节省大量 RAM。

编辑: 有时我用这个:

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

// ...

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

它单独打印每个部分,没有串联等。

关于arduino - Arduino 如何与字符串一起打印整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43325379/

相关文章:

python - 定义引脚时出现 InvalidPinDefError

c - 永久改变参数值

macos - Arduino IDE 未显示任何端口 macOS

c - 在 LCD 显示屏上打印前三个重复元素

python - 在 Python 中将字节转换为整数

python - Arduino 的 Pyserial 问题 - 适用于 Python shell 但不适用于程序

c - 丢弃距离测量中的失控值

arduino - 我无法让 DS3231 RTC 工作

java - 安卓蓝牙字符串接收器

java - 从 Arduino 读取数据到处理中返回空结果