Arduino通信篇系列之print()和write()輸出方式的差異
阿新 • • 發佈:2017-12-03
scl 監視 () nbsp 函數 1.2 系列 輸出數據 int
我們都知道,在HardwareSerial類中有print()和write()兩種輸出方式,
兩個都可以輸出數據,但其輸出方式並不相同。
例子:
float FLOAT=1.23456;
int INT=124;
byte BYTE[6]={48,49,50,51,52,53};
void setup()
{
Serial.begin(9600);
Serial.println(INT);
Serial.println(INT,HEX);
Serial.println(FLOAT);
Serial.println(FLOAT,2);
Serial.write(INT);
Serial.println();
Serial.write("Serial");
Serial.println();
Serial.write(BYTE,6);
}
void loop
{
}
結果:
123
1111011
1.23
1.23
{
Serial
012345
比較:
當使用print()發送一個數據時,Arduino發送的並不是數據本身,而是
將數據轉換成字符,再將對應的ASCLL碼發送出去,串口監視器接收到
ASCLL碼,則會顯示對應的字符。因此,使用print()函數是以ASCLL
碼的形式輸出數據到串口。
而當使用write()函數時,Arduino發送的是數值本身。但是串口監視器接收
到數據後,會將數值當做ASCLL碼而顯示其對應的字符。
總而言之,print是轉換成ASCLL碼才能發出去,就相當於中間介質。
而write是直接發送數據,不需要中間介質。
Arduino通信篇系列之print()和write()輸出方式的差異