Arduino串口输出函数print()和write()的联系和区别

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
 
   print()可以指定输出进制,默认ASCII文本输出
3、当参数时浮点型数值时,write()不能工作,print()根据第二个参数显示小数位数,默认两位。详见附件

  

附录:官方文档

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()将返回写入的字节数,但是否使用(或读出)这个数字是可设定的

 

posted @   沭水之虾  阅读(146)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示