3-2-三个基本的串口打印输出函数
实训项目:串口的打印输出字符串
编写Arduino程序,在蓝蜻蜓ESP32物联网开发平台上,完成以下的功能:
- 初始化UART0
- 初始化UART0的波特率为115200,并打开串口0。
- 使用print()打印字符串
- 使用
print()
打印字符串:"UART:"。 - 使用
print()
打印字符串:"HelloWorld!"。
- 使用
- 使用println()回车换行
- 使用
println()
实现回车换行。
- 使用
- 定义全局变量并打印输出
- 定义一个全局变量
num
,每隔2秒进行加1累计。 - 使用
printf()
格式化并打印输出字符串:"运行次数:XX次",回车换行。
- 定义一个全局变量
- 使用printinO打印变量
- 使用
print()
分别以二进制和十六进制的形式打印输出num
变量。
- 使用
- 设置monitor终端的波特率
- 程序运行后,设置monitor终端的波特率,通常终端监视串口的信息输出。
串口初始化
串口打印输出函数
程序代码
void init_serial()
{
Serial.begin(115200);
}
#include <Arduino.h>
void init_serial()
{
Serial.begin(115200);
}
int num = 0;
void serial_print()
{
Serial.print("uart0:");
Serial.print("Hello World!");
Serial.println();
Serial.printf("运行次数:%d \r\n", num);
Serial.print("num二进制为:");
Serial.println(num,BIN);
Serial.print("num十六进制为:");
Serial.println(num,HEX);
}
void setup()
{
init_serial();
}
void loop()
{
num++;
delay(2000);
serial_print();
}
这段代码是一个Arduino程序,用于在蓝蜻蜓ESP32物联网开发平台上实现串口的打印输出。下面是代码的逐行解释:
#include <Arduino.h>
- 这行代码包含了Arduino核心库,是编写Arduino程序的基础。
void init_serial()
{
Serial.begin(115200);
}
- 定义了一个名为
init_serial
的函数,用于初始化串口。 Serial.begin(115200);
这行代码设置了串口的波特率(即数据传输速率)为115200,这样设备就可以通过串口与其他设备进行通信。
int num = 0;
- 定义了一个全局变量
num
,并初始化为0。这个变量用于记录程序运行的次数。
void serial_print()
{
Serial.print("uart0:");
Serial.print("Hello World!");
Serial.println();
Serial.printf("运行次数:%d \r\n", num);
}
- 定义了一个名为
serial_print
的函数,用于通过串口打印输出信息。 Serial.print("uart0:");
打印字符串"uart0:"。Serial.print("Hello World!");
打印字符串"Hello World!"。Serial.println();
打印一个换行符,使输出更清晰。Serial.printf("运行次数:%d \r\n", num);
使用格式化输出打印运行次数,其中%d
是一个占位符,表示一个整数,\r\n
是回车换行符。
void setup()
{
init_serial();
}
- 定义了
setup
函数,这是Arduino程序的入口点。 init_serial();
调用init_serial
函数初始化串口。
void loop()
{
num++;
delay(2000);
serial_print();
}
- 定义了
loop
函数,这是Arduino程序的主要循环体,会不断重复执行。 num++;
将全局变量num
的值增加1。delay(2000);
使程序暂停2000毫秒(即2秒)。serial_print();
调用serial_print
函数,通过串口打印输出信息。
整个程序的逻辑是:在程序开始时初始化串口,然后在主循环中每隔2秒增加一次运行次数,并通过串口打印输出当前的运行次数和"Hello World!"字符串。