Serial.write()或Serial.print()区别
时间: 2024-09-09 16:09:21 浏览: 238
Serial_python.zip
`Serial.write()` 和 `Serial.print()` 都是Arduino Uno等基于AVR的微控制器上常用的串行通信函数,它们的主要区别在于接收端如何解析传来的数据。
1. **Serial.write()**: 这个函数只接受整数类型的输入,例如字节(byte)。当调用 `Serial.write(int data)` 时,它会直接将 `data` 中指定的字节数组发送出去。如果试图发送非字节的数据(如字符、字符串),你需要先将其转换成字节数组。例如:
```cpp
byte message[] = {'H', 'e', 'l', 'l', 'o'};
Serial.write(message);
```
2. **Serial.print()**: 这个函数更灵活,它可以接收各种数据类型(包括字符、整型、浮点型等)。当你传递一个值给 `Serial.print()`,它会自动进行适当的类型转换然后发送。例如:
```cpp
int num = 42;
double pi = 3.14;
Serial.print("Number: ");
Serial.print(num);
Serial.print(", PI: ");
Serial.print(pi);
```
对于字符串,`Serial.print()` 会直接打印,而不需要预处理。
阅读全文