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