目录

前言

函数区别

语法和参数传递:

输出目标:

功能和扩展性:

内存的占用:

函数使用


前言

        在代码编译调试过程中,使用串口打印数据是必须的。常规C语言环境使用的是​printf()​函数。那在Arduino中呢?printf()也是可用的,它与C/C++标准库中的函数有相同的功能。但是,在Arduino编程中,并不直接使用 ​printf()​来进行打印输出,而是使用Arduino库提供的专门函数来实现。

        以下是在Arduino中常用的打印输出函数:​Serial.print()​与 ​Serial.println()

​​//Serial.print()​:
//这个函数可用于将文本、数字和变量以文本形式打印到串口监视器(通过USB或硬件串口)。

​​Serial.print("Hello");​    //打印一个字符串。
​​Serial.print(123);        //​打印一个整数。
​​Serial.print(3.14);       //​打印一个浮点数。
​​Serial.println()​;         //与 ​Serial.print()​函数类似,但会在打印完成后自动添加换行符。

​​Serial.println("Hello");    //​打印一个带换行的字符串。
​​Serial.println(123);​        //打印一个带换行的整数。
​​Serial.println(3.14);       //​打印一个带换行的浮点数。

函数区别

当在Arduino开发中,我们来比较 ​printf()​Serial.print() ​Serial.println(),它们有以下区别:

  1. 语法和参数传递:

    • ​printf():是C/C++的标准库函数,通常需要使用格式化字符串指定输出的格式,并根据格式化字符串参数传递变量或具体数值。
    • ​Serial.print()​和 ​Serial.println()​:是Arduino提供的库函数,不需要使用格式化字符串,可以直接打印字符串、数字或变量。这些函数会自动将传递的参数转换为字符串进行输出。
  2. 输出目标:

    • ​printf()​: 通常将结果输出到控制台窗口(例如命令行界面)。printf()
    • ​Serial.print()​和 ​Serial.println()​:将结果输出到Arduino的串口监视器,即通过USB连接到计算机上的串口调试工具。
  3. 功能和扩展性:

    • ​printf()​: 提供了更多的格式化选项,可以按照特定的格式输出字符串、整数、浮点数等,并支持更复杂的格式化操作。
    • ​Serial.print()​和 ​Serial.println()​:在Arduino开发中,这些函数针对常见的输出需求提供了简化和易用性,但功能上相对较为有限,无法直接提供复杂的格式化输出。
  4. 内存的占用:

    printf()​: 是标准库函数,由于其功能较为强大,可能会占用更多的程序存储空间。Serial.print()​和 ​Serial.println()​:是Arduino库函数,为了适应资源受限的环境,它们通常会对内存占用进行优化,并使用较少的存储空间。

        综上所述,​printf()​是标准库提供的功能强大、灵活的打印函数,适用于大型项目或复杂的输出需求。而 ​Serial.print()​和 ​Serial.println()​函数是Arduino提供的简化版打印函数,适用于常见的打印输出,在Arduino开发中使用较为普遍且易于实现。

函数使用

​   Serial.print()​ 是Arduino编程中常用的函数,用于在串口监视器中打印输出。它的作用是将数据以文本形式打印到串口。下面是 ​Serial.print()​函数的使用示例:

void setup() {
  // 初始化设备和设置
  Serial.begin(9600);
}

void loop() {
  // 主循环
  int sensorValue = analogRead(A0);  // 读取模拟引脚A0的值
  float voltage = sensorValue * (5.0 / 1023.0);  // 将读数转换为电压值

  Serial.print("Sensor reading: ");  // 打印文本
  Serial.print(sensorValue);  // 打印传感器读数
  Serial.print("\tVoltage: ");  // 打印文本
  Serial.print(voltage, 2);  // 打印电压值(限制小数点后2位)

  delay(1000);  // 延时1秒
}

   Serial.println()​ 是Arduino编程中常用的函数,用于在串口监视器中打印输出。它的作用是将数据以文本形式打印到串口,并在文本后添加换行符。下面是 ​Serial.println()​函数的使用示例:

void setup() {
  // 初始化设备和设置
  Serial.begin(9600);
}

void loop() {
  // 主循环
  int sensorValue = analogRead(A0);  // 读取模拟引脚A0的值
  float voltage = sensorValue * (5.0 / 1023.0);  // 将读数转换为电压值

  Serial.print("Sensor reading: ");  // 打印文本
  Serial.println(sensorValue);  // 打印传感器读数,并在末尾添加换行符
  Serial.print("Voltage: ");
  Serial.println(voltage, 2);  // 打印电压值(限制小数点后2位),并在末尾添加换行符

  delay(1000);  // 延时1秒
}

        要在Arduino中只使用一次串口操作,同时打印字符和变量,可以使用+操作符将字符和变量连接在一起,然后再打印输出。以下是一个示例:

int num = 10;
Serial.println("Value of num is: " + String(num));

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐