Skip to content

第 2 章:第一个程序——setup 与 loop

本章能学到什么

  • setup()loop() 的分工
  • Serial 打印信息
  • 变量与常见类型
  • C++ 必须先声明类型、语句结尾要加分号——和 Python 的两个关键区别

第一个程序

cpp
void setup() {
  Serial.begin(115200);       // 初始化串口,波特率 115200
  Serial.println("Hello, Pico!");
}

void loop() {
  // 空着也行,程序不会退出
}
  • setup():上电后只执行一次,做初始化(开串口、设引脚模式)
  • loop():然后无限循环执行,相当于 Python 里的 while True:

上传后打开 Arduino IDE 的"串口监视器",就能看到 Hello, Pico!

注释

cpp
// 这是单行注释

/* 这是
   多行注释 */

变量与类型:先声明,再使用

这是和 Python 最大的区别。Python 里 x = 5 就行;C++ 里必须先告诉编译器"x 是什么类型":

cpp
int ledPin = 25;           // 整数
float distance = 18.5;     // 浮点数
char grade = 'A';          // 单个字符(单引号)
String message = "灯亮了";  // 字符串(双引号,String 大写 S)
bool isAlarm = true;       // 布尔值
类型例子对应 Python
int42int
float3.14float
char'A'没有单字符类型
String"GP0"str
booltrue / falseTrue / False(注意大小写不同!)

分号:每句话的句号

C++ 里每条语句末尾必须加分号 ;——这是初学者最常踩的坑:

cpp
Serial.println("亮灯");   // ✅ 有分号
delay(500)               // ❌ 编译报错:expected ';'

用 Serial 观察变量

cpp
void setup() {
  Serial.begin(115200);
  int a = 7, b = 3;
  Serial.print("a + b = ");
  Serial.println(a + b);        // 输出:a + b = 10

  float d = 580 * 0.0343 / 2;   // 超声波换算
  Serial.print("距离:");
  Serial.print(d);
  Serial.println(" cm");
}

void loop() {}
  • Serial.print():打印,不换行
  • Serial.println():打印并换行(ln = line)

常见坑

  • 忘写分号:报错行往往指向下一行,往前找
  • 类型不匹配int x = "abc"; 编译不过;String 的 S 必须大写
  • 布尔值大小写:C++ 是 true/false,Python 是 True/False
  • 串口监视器波特率必须和 Serial.begin() 里的数字一致,否则显示乱码

想一想

Python 的 while True: 和 Arduino 的 loop() 有什么异同?setup() 在 Python 里相当于什么?

💡 查看答案
  • 相同点:都让代码无限重复执行
  • 不同点while True: 要自己写;loop() 是 Arduino 框架自带的,只管往里面填内容,框架自动循环调用
  • setup() 相当于 Python 里写在 while True: 前面的那些初始化代码(导入库、设置引脚)——只执行一次

Arduino 只是把"只干一次"和"反复干"这两部分用两个函数固定分开了,结构更清晰。

不积跬步,无以至千里;万里之行,始于当下。