用户工具

站点工具


reference:language:serial_print

Serial

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

例子:

/ *
使用for循环打印一个数字的各种格式。
* /
int x = 0;    // 定义一个变量并赋值
 
void setup() {
  Serial.begin(9600);      // 打开串口传输,并设置波特率为9600
}
 
void loop() {
  / /打印标签
    Serial.print("NO FORMAT");       // 打印一个标签
  Serial.print("\t");              // 打印一个转义字符
 
  Serial.print("DEC");  
  Serial.print("\t");      
 
  Serial.print("HEX"); 
  Serial.print("\t");   
 
  Serial.print("OCT");
  Serial.print("\t");
 
  Serial.print("BIN");
  Serial.print("\t"); 
 
  for(x=0; x< 64; x++){    // 打印ASCII码表的一部分, 修改它的格式得到需要的内容
 
    / /打印多种格式:
      Serial.print(x);       // 以十进制格式将x打印输出 - 与 "DEC"相同
    Serial.print("\t");    // 横向跳格
 
    Serial.print(x, DEC);  // 以十进制格式将x打印输出
    Serial.print("\t");    // 横向跳格
 
    Serial.print(x, HEX);  // 以十六进制格式打印输出
    Serial.print("\t");    // 横向跳格
 
    Serial.print(x, OCT);  // 以八进制格式打印输出
    Serial.print("\t");    // 横向跳格
 
    Serial.println(x, BIN);  // 以二进制格式打印输出
    //                             然后用 "println"打印一个回车
    delay(200);            // 延时200ms
  }
  Serial.println("");      // 打印一个空字符,并自动换行
}

编程技巧 作为1.0版本,串行传输是异步的; Serial.print()将返回之前接收到的任何字符。

reference/language/serial_print.txt · 最后更改: 2017/10/04 06:41 由 弘毅