Arduino printf 函数
Ammar Ali
2023年10月12日
-
在 Arduino 中使用
sprintf()
和Serial.print()
函数获得与prinf()
相同的输出 -
在 Arduino 中仅使用
Serial.print()
函数获得与prinf()
相同的输出
本教程将讨论一种获得与 Arduino 中的 printf()
函数相同的结果的方法。
在 Arduino 中使用 sprintf()
和 Serial.print()
函数获得与 prinf()
相同的输出
Arduino 没有提供 printf()
函数。但是,如果要获得类似于 printf()
函数的输出,则可以同时使用 sprintf()
和 Serial.print()
函数来获得输出。首先,你需要使用 sprintf()
函数格式化输出并将其存储在 char
变量中。然后使用 Serial.print()
函数将变量输出到串行监视器上。
int time = 0;
char buff[50];
void setup() { Serial.begin(9600); }
void loop() {
sprintf(buff, "the value is %d seconds", time++);
Serial.println(buff);
}
在上面的代码中,buff
是 char
类型的变量,用于存储要在串行监视器上显示的格式化输出。请注意,不建议使用此方法,因为它将占用大量代码空间。相反,你可以使用 Serial.print()
函数两次或三次,以获得与 printf()
函数相同的结果。同样,此方法不适用于浮点数。你需要将它们转换为浮点数的字符串
,然后才能使用此方法。
在 Arduino 中仅使用 Serial.print()
函数获得与 prinf()
相同的输出
如果上述方法对你不起作用,那么这是一种更好的使用方法。代替使用上述方法,你只能使用 Serial.print()
函数来获得与 printf()
函数相同的结果。但是此函数不适用于浮点数。对于浮点数,你需要将它们转换为字符串,然后才能使用此函数。
int time = 0;
void setup() { Serial.begin(9600); }
void loop() {
Serial.print("the value is ");
Serial.print(time++);
Serial.println(" seconds");
}
此方法也将为你提供与上述方法相同的输出,但更好且易于使用。
作者: Ammar Ali