1. 程式人生 > >Arduino通信篇系列之print()和write()輸出方式的差異

Arduino通信篇系列之print()和write()輸出方式的差異

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()輸出方式的差異