01_ESP32 串口发送数据
01_ESP32串口发送数据
1、示例代码:
void setup()
{
// 在此处的代码只会运行一次
Serial.begin(9600); // 初始化串口通信,设置波特率为 9600
while(!Serial)
{
; // 等待串口建立连接
};
Serial.println("Hello World!"); // 通过串口发送字符串 “Hello World” 并换行
}
void loop()
{
// 在此处的代码会一直重复运行
}
2、Arduino 程序结构
每个 Arduino 程序都有两个核心函数: setup() 和 loop() 函数。理解这两个函数的区别是学习 Arduino 编程的基础。
setup()函数:在开发板开机或复位后只执行一次,用于初始化设置。 常用于初始化串口通信、设置引脚模式和初始化传感器和模块等。loop()函数:setup()执行完毕后,loop()函数会无限循环执行,是程序的主体部分。
在前面的“Hello World”示例中,Serial.println("Hello World!"); 写在了 setup() 函数里,所以只会执行一次。如果想让它重复打印,可以将其移动到 loop() 函数中:
void setup()
{
Serial.begin(9600);
while (!Serial)
{
; // 等待串口建立连接
};
}
void loop()
{
Serial.println("Hello World!");
delay(1000); // 暂停程序执行 1000 毫秒(1 秒)
}
这样 "Hello World!" 就会每秒打印一次。
3、官方库介绍
地址:Language Reference | Arduino Documentation
Serial.begin(9600); :
- 设置串口波特率
- 代码中设置的波特率必须与串口监视器(或接收端)设置的波特率一致,否则可能会导致接收到的数据显示为乱码。
while (!Serial) :
- 等待串口连接就绪。确保连接稳定后程序继续,从而避免在串口监视器打开前就尝试发送数据导致信息丢失。
Serial对象在 USB 串口连接实际建立之前,其布尔值评估为false。一旦连接建立(例如,在电脑上打开串口监视器后),它就评估为true。
Serial.println(); :
- 发送数据(可以是字符串、变量、数字等)到串口,并自动换行。
- 还有一个类似的函数
Serial.print(data),它发送数据但不自动换行。
delay(); :
- 暂停程序执行指定的毫秒数。用于控制程序流程的时间间隔,例如控制 LED 闪烁的频率。
浙公网安备 33010602011771号