Arduino printf 函数

Ammar Ali 2023年1月30日 2021年4月29日
  1. 在 Arduino 中使用 sprintf()Serial.print() 函数获得与 prinf() 相同的输出
  2. 在 Arduino 中仅使用 Serial.print() 函数获得与 prinf() 相同的输出
Arduino printf 函数

本教程将讨论一种获得与 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);
}

在上面的代码中,buffchar 类型的变量,用于存储要在串行监视器上显示的格式化输出。请注意,不建议使用此方法,因为它将占用大量代码空间。相反,你可以使用 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");
}

此方法也将为你提供与上述方法相同的输出,但更好且易于使用。

Author: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相关文章 - Arduino Print