用户工具

站点工具


reference:language:serial_print

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
reference:language:serial_print [2017/10/04 06:41] 弘毅reference:language:serial_print [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1
行 1: 行 1:
 +[[reference:language:serial|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()将返回写入的字节数,但是否使用(或读出)这个数字是可设定的
 +===== 例子: =====
 +
 +<code cpp>
 +/ *
 +使用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("");      // 打印一个空字符,并自动换行
 +}
 +</code>
 +编程技巧
 +作为1.0版本,串行传输是异步的; Serial.print()将返回之前接收到的任何字符。