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 闪烁的频率。
posted @ 2026-05-19 12:56  Q&25  阅读(23)  评论(0)    收藏  举报