深色模式
第 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 |
|---|---|---|
int | 42 | int |
float | 3.14 | float |
char | 'A' | 没有单字符类型 |
String | "GP0" | str |
bool | true / false | True / 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 只是把"只干一次"和"反复干"这两部分用两个函数固定分开了,结构更清晰。
