簡體   English   中英

將變量放入字符串(arduino)

[英]Putting variable in string (arduino)

我想為arduino項目編寫一個函數,但是有一些問題。

char telephone_number = 111232113;
Serial.println("AT+CMGS=\"telephone_number\"\r");

控制台向我顯示了AT+CMGS="telephone_number"但我希望顯示的不是AT+CMGS="111232113"

有可能以這種形式嗎? 我是編程新手,我不知道該如何管理。

不要使用String 誘人的易用性,但最終您會后悔的。 :-(它們速度較慢,使用更多的RAM,並增加了1.6k的程序大小。只需堅持使用普通的舊C字符串,也稱為char數組。

您可以將打印語句分為三個部分:

char telephone_number[] = "111232113";
Serial.print( "AT+CMGS=\"" );
Serial.print( telephone_number );
Serial.println( "\"\r" );

通過在雙引號字符串的打印周圍使用F宏,可以節省更多的RAM空間:

char telephone_number[] = "111232113";
Serial.print( F("AT+CMGS=\"") );   // Saves 10 bytes of RAM
Serial.print( telephone_number );
Serial.println( F("\"\r") );       // Saves 3 bytes of RAM

在這樣的任何地方打印雙引號的字符串,只需用F宏將其包裝即可。

順便說一句,我假設電話號碼不是一個常數,所以您需要將其保留在RAM中,如此處所示的char數組。

你快到了!

您需要修正兩點:

  1. char telephone_number = 111232113; char類型通常用於保留單個字符。 在Arduino中,您可以使用String類來表示多個字符。

  2. 為了將一個字符串變量的值與另一個字符串連接起來,您需要使用運算符+ 請參閱字符串加法運算符

這是更正的代碼:

String telephone_number = "111232113";
Serial.println("AT+CMGS=\"" + telephone_number + "\"\r");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM