Arduino printf 函式

Ammar Ali 2023年10月12日
  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");
}

此方法也將為你提供與上述方法相同的輸出,但更好且易於使用。

作者: 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