write()传送的是ASCII的十进制的值(如65),而print()传送的是ASCII的文本(如A)
1、当参数是字符串时,两者效果相同。
因为write()先把字符文本转换成ASCII值,然后转译成ASCII文本,故与print()的效果相同
例如:print("abc")和write("abc")都输出:abc
print("123")和write("123')都输出:123
2、当二者参数都是int型数值时
print()直接输出int数值,如print(123)输出:123
write()会把数字转化成二进制,然后截取最后8bit组成1Byte输出
如write(123)输出"{",同时write(379)也输出"{",这是因为十进制123和379的对应二进制最后八位相同
十进制 |
二进制 |
123 | 0 0111 1011 |
379 | 1 0111 1011 |
附录:官方文档
write()
说明写入二级制数据到串口。发送的数据以一个字节或者一系列的字节为单位。如果写入的数字为字符,需使用print()命令进行代替。
语法
Serial.write(val)
Serial.write(str)
Serial.write(buf, len)
Arduino Mega还支持:Serial1,Serial2,Serial3 (替代Serial)
参数
val: 以单个字节形式发的值
str: 以一串字节的形式发送的字符串
buf: 以一串字节的形式发送的数组
len: 数组的长度
返回结果
byte
write() 将返回写入的字节数,但是否使用这个数字是可选的
print()
说明
以人们可读的ASCII文本形式打印数据到串口输出。此命令可以采取多种形式。每个数字的打印输出使用的是ASCII字符。浮点型同样打印输出的是ASCII字符,保留到小数点后两位。Bytes型则打印输出单个字符。字符和字符串原样打印输出。Serial.print()打印输出数据不换行,Serial.println()打印输出数据自动换行处理。例如
- Serial.print(78)输出为“78”
- Serial.print(1.23456)输出为“1.23”
- Serial.print(“N”)输出为“N”
- Serial.print(“Hello world.”)输出为“Hello world.”
也可以自己定义输出为几进制(格式);可以是BIN(二进制,或以2为基数),OCT(八进制,或以8为基数),DEC(十进制,或以10为基数),HEX(十六进制,或以16为基数)。对于浮点型数字,可以指定输出的小数数位。例如
- Serial.print(78,BIN)输出为“1001110”
- Serial.print(78,OCT)输出为“116”
- Serial.print(78,DEC)输出为“78”
- Serial.print(78,HEX)输出为“4E”
- Serial.println(1.23456,0)输出为“1”
- Serial.println(1.23456,2)输出为“1.23”
- Serial.println(1.23456,4)输出为“1.2346”
你可以通过基于闪存的字符串来进行打印输出,将数据放入F()中,再放入Serial.print()。例如 Serial.print(F(“Hello world”)) 若要发送一个字节,则使用 Serial.write()。
语法
Serial.print(val)
Serial.print(val,格式)
参数
val:打印输出的值 - 任何数据类型
格式:指定进制(整数数据类型)或小数位数(浮点类型)
返回
字节 print()将返回写入的字节数,但是否使用(或读出)这个数字是可设定的
标签:输出,打印输出,Arduino,write,123,串口,print,Serial From: https://www.cnblogs.com/sharer/p/18647407