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

我们都知道,在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是直接发送数据,不需要中间介质。

 

posted @ 2017-12-03 15:13  付小白  阅读(15893)  评论(0编辑  收藏  举报