造物笔记/嘉立创EDA 教程(原立创EDA)
基于 嘉立创EDA专业版 V4.1.93
造物笔记 / 嘉立创EDA 教程 / 第 2 章 · 前置知识补全

2.8 单片机入门

单片机是一颗“装在芯片里的小电脑”。这一节讲它由什么组成、GPIO 引脚怎么控制外面的东西、程序是怎么“写进去”的,以及串口和 USB——都是为案例 B 的 ESP32-C3 彩灯板做准备。

⏱ 约 15 分钟🎯 需要 2.7 的基础

单片机 = 一颗芯片里的小电脑#

单片机(MCU,Microcontroller Unit)把一台电脑最基本的部分都塞进了一颗芯片:

单片机(例如 ESP32-C3) CPU执行程序的大脑 Flash存程序,断电不丢 RAM运行时的草稿纸 时钟节拍(靠晶振) 通信接口UART / USB / I²C / SPI 无线Wi-Fi / 蓝牙 按键传感器USB(电脑)电源 3.3 V LEDRGB 灯电机驱动屏幕… 输入输出(都通过 GPIO 引脚)

和电脑相比,单片机很“弱”(ESP32-C3 主频最高 160 MHz,内存几百 KB),但它便宜、省电、上电就跑,非常适合控制灯、电机、传感器这类事情。洗衣机、电饭煲、遥控器里都有单片机。

GPIO:程序控制的引脚#

GPIO(通用输入输出)是单片机上可以由程序控制的引脚,每只都有编号(ESP32-C3 叫 IO0、IO1……):

  • 输出模式:程序让它输出高电平(3.3 V)或低电平(0 V),去点亮 LED、控制别的芯片。比如 digitalWrite(8, HIGH)。
  • 输入模式:程序读取外面接进来的是高还是低,比如检测按键有没有按下(记得上拉电阻,2.7)。
  • 很多 GPIO 还有“兼职”:模拟输入(测电压)、PWM(调光)、串口、I²C、SPI 等。

案例 B 里,IO8 接到第一颗 RGB 灯的数据输入(网络 RGB_DIN),三颗灯首尾串成一串:前一颗的 DOUT 接后一颗的 DIN。程序从 IO8 发出一串数据,就能分别设置每颗灯的颜色。

程序是怎么“写进去”的:烧录#

你在电脑上写的程序,要变成单片机能执行的机器码,再存进它的 Flash 里,这个过程叫烧录(也叫下载、上传、Flash)。以 Arduino 为例:

  1. 在电脑上用 Arduino IDE 写程序(C/C++ 语言)。
  2. 点「上传」:软件先把程序编译成机器码。
  3. 通过 USB 线把机器码发给单片机,单片机里自带的“引导程序”把它写进 Flash。
  4. 写完后单片机自动重启,开始运行你的程序。以后每次上电都会自动运行,不用再连电脑。

串口和 USB#

  • 串口(UART):最简单、最常用的通信方式,只要两根信号线:TX(发)和 RX(收),外加 GND。两个设备连接时要交叉:A 的 TX 接 B 的 RX,A 的 RX 接 B 的 TX。单片机常用串口把调试信息“打印”到电脑上(Arduino 的 Serial.println()),这是排查程序问题的头号工具。
  • USB:电脑和单片机之间更方便的连接方式。很多老单片机自己不会“说 USB”,板子上要额外放一颗 USB 转串口芯片;ESP32-C3 芯片内置了 USB 串口 / 调试功能,USB 的 D− / D+ 直接接到模组的 IO18 / IO19 就行,省掉了一颗芯片。这就是案例 B 的 USB_D− / USB_D+ 网络。
单片机的程序存在哪里,断电后还在吗?
✅ 程序烧录进 Flash,断电不丢,上电自动运行。RAM 只是运行时临时存数据用的。
两块板子用串口通信,接线正确的是?
✅ 一方的“发”要接另一方的“收”。别忘了 GND——共地。

回到哪里继续#