PRJ - Write Vs Print#

2024-05-29

/*
Serial write vs print

- write(val) 会将 val 值对应的 ascii 码表中的编码符号打印出来;
- print(val) 会将 val 打印结果的形式仍然是 val。

例如:

write(45), 在串口助手中得到 "-" (负号);
print(45),显示 45。 这说明 print(45),先将一字节的内部值 45 转成了 "45" 两个字节的字符串,再显示出来。

----------------

问题: 我们在用串口发送数据时,应该用 write, 还是 print?

好像这个问题取决于接收方接下来要做的处理。
如果接收方接下来是印口打印和显示,用 Serial.print。

如果是将数据通过串口发送给其它 arduino,那么用 write 似乎会节省一半的发送量。但是,很少有应用只发送非结构化的数据,而是发送更易解析的字符串,所以,用 print 是否会更普遍?


*/


void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
delay(2000);

// write 方法
Serial.print("\n1. write:");
Serial.write((int)45);


// print 方法
Serial.print("\n2. print:");
Serial.print(45);


// more print

Serial.println(123.45);

}

void loop() {
  // put your main code here, to run repeatedly:

}