简介:面向Arduino与ATMEGA328开发者的单片机最小系统设计资料包,适合电子爱好者、嵌入式初学者及硬件工程师,用于完成从原理图绘制到PCB打样的完整流程。资源共10个文件,涵盖原理图PDF、立创EDA源文件JSON、PCB打样Gerber压缩包、坐标文件与BOM清单CSV,以及多张设计预览图,整体约367KB,目录结构清晰,可按需取用对应文件。已有991人学习下载。内容聚焦电源电路、晶振电路、复位电路和UART/IIC/SPI通信接口,并配套PCB布局布线参考与完整元件清单。PCB文件可直接用于打样,BOM清单方便采购与焊接核对,立创EDA源文件支持二次修改,坐标文件可供贴片生产参考。通过理解这些设计资料,能够掌握ATMEGA328最小系统的硬件要点,为后续嵌入式开发与项目实践打下扎实基础。
1. ADUINO ATmega328单片机最小系统:把一块UNO拆到只剩必需品,值不值得自己画
标题里的 ADUINO,实际是 Arduino 的常见拼写变体,在打样文件、二手 PCB 和不少电商链接里都能见到,核心芯片都是 ATmega328P。所谓最小系统,就是把一块 Arduino UNO 砍到只剩“芯片能跑起来”的电路:电源、16MHz 晶振、复位电路、ISP 下载口,再补一颗 LED 做状态指示。这套东西解决两个实际诉求:一是成本,自己画板打样焊接,一块能跑 Blink 和串口的核心板不到十块钱;二是原理,你能亲手把“单片机最小系统”从原理图一路做到烧录验证,而不是只会买现成开发板。适合做课设毕设需要自制核心板的人,也适合想从 51 单片机体系跳到 AVR 体系的人。反直觉的是:照抄 UNO 的原理图并不难,真正让你翻车的是熔丝位和 DTR 自动复位——很多人在 Proteus 里仿真 51 单片机串口跑得欢,焊出真板子却下载失败。这篇按原理图、PCB、BOM、避坑、验证的顺序讲完,照着做能少打一次废板。
2. 从原理图开始:ADUINO核心板的电源、时钟、复位与下载电路怎么画
2.1 最小系统保留哪五块电路:别把UNO整块抄过来
画原理图最容易犯的错是“求全”,把 UNO 上的 USB 座、16U2 转串口芯片、电源芯片、六颗 LED 全部搬过来。最小系统不需要这些,抄过来的不仅是工作量,还有排查难度。真正必须保留的只有五块:电源供电、时钟源、复位电路、程序下载接口、状态指示。
芯片选择上,ATmega328P 有两个常见封装:DIP-28 直插和 TQFP-32 贴片。做原理图符号时两者引脚网络完全一致,只是脚号不同。下面这张网络表以 DIP-28 脚号为例,贴片封装对应到数据手册的引脚图即可,网络名不用改:
| 网络名 | 连接对象 | 说明 |
|---|---|---|
| VCC | U1-7、U1-20(AVCC)、排针、去耦电容正端、R1上端、LED电阻上端 | 5V 主电源 |
| GND | U1-8、U1-22、排针、C3/C4 负极、LED 阴极 | 系统地 |
| XTAL16M | Y1-1 → U1-9(XTAL1),C1 接 GND | 晶振一侧 |
| XTAL16M_N | Y1-2 → U1-10(XTAL2),C2 接 GND | 晶振另一侧 |
| RESET | U1-1、R1 下端、C5、按键一端、ICSP 第5针 | 复位信号 |
| RXD | U1-2(PD0),接串口模块 TXD | 串口接收 |
| TXD | U1-3(PD1),接串口模块 RXD | 串口发送 |
| D13 | U1-19(PB5)、R2、ICSP 的 SCK | 板载 LED 与 ISP 时钟共用 |
这张表可以直接在嘉立创EDA或立创EDA里按网络拉线。我的习惯是先建好这八个网络,再往网络里挂器件引脚,而不是从器件开始拖线——这样画完的图纸网络关系清晰,转 PCB 后还可以直接拿网络表核对漏连。
2.2 电源与AVCC/AREF:两个电容决定ADC稳不稳
ATmega328P 有独立的模拟电源引脚:DIP-28 的第 20 脚 AVCC 和第 21 脚 AREF。很多最小系统图纸只画了 VCC 和 GND,把 AVCC 悬空,AREF 也悬空,结果就是程序能跑,但一用到 analogRead 就抓瞎——读数乱跳,随环境噪声漂。
AVCC 必须接 VCC,不能悬空。稳妥做法是从 VCC 走一小段线到 AVCC,并在 AVCC 附近放一颗 0.1uF 陶瓷电容到 GND,这颗电容的作用是隔离数字电路开关噪声对 ADC 供电的干扰。AREF 是 ADC 基准电压脚,可以在软件里设成内部基准,但硬件上仍然建议对地接一颗 100nF 电容,让基准电压稳定。如果不接这颗电容,AREF 引脚本身是高阻输入,空间耦合噪声会直接叠到采样值上。
电源方案上,如果只做 5V 版本,直接从排针或 USB 取 5V 给 VCC 即可,但要在电源入口放一颗 10uF 电解电容或钽电容做低频滤波,再在每个 VCC 脚就近放 0.1uF 高频去耦。如果要做 3.3V 低功耗版本,常见做法是加一颗 AMS1117-3.3 从 5V 转 3.3V,注意此时晶振最好换成 8MHz——ATmega328P 虽然标称 1.8V 到 5.5V 都能工作,但 16MHz 时钟在 3.3V 下属于超频范围,容易起振不稳定。
2.3 16MHz晶振电路:22pF电容的取值逻辑和改频方案
晶振电路是整个最小系统里最容易被“差不多就行”毁掉的部分。ATmega328P 的 XTAL1、XTAL2 两脚接无源晶振,晶振两端各接一颗电容到 GND,这两颗电容叫负载电容,取值不是随便选的。
负载电容的计算公式是 CL = C1 × C2 / (C1 + C2) + 走线寄生电容,寄生电容一般在 3 到 5pF 左右。16MHz 晶振的标称负载电容常见为 12pF、16pF、20pF 几档。如果手上晶振标称 CL=16pF,取 C1=C2=22pF,并联后约 11pF,加上寄生 4pF 左右正好接近 16pF。如果晶振标称 CL=10pF,就改用 15pF 电容。这里的关键是:晶振外壳或数据手册会标 CL 值,照着它反推 C1/C2,而不是一律 22pF。
还有一个更隐蔽的坑:新出厂的 ATmega328P,熔丝位默认是内部 8MHz RC 振荡器且开启了八分频,实际跑在 1MHz,外部晶振根本不参与工作。这就导致两种现象:要么烧录时 ISP 时钟太快连接失败,要么烧完 bootloader 后串口波特率全乱。所以原理图画得再对,上电第一件事也是先处理熔丝位,这个在第 5 章和第 6 章会具体讲。另外采购时务必认准“无源晶振”,两脚的才是无源;四脚的有源振荡器输出方式不同,不能直接替换,接上去大概率起振失败。
2.4 复位电路与下载口:ICSP六针定义和DTR自动复位
复位电路由三部分组成:10k 电阻把 RESET 上拉到 VCC,100nF 电容把 RESET 对地,按键把 RESET 直接接地。平时 RESET 被上拉在高电平,按下按键瞬间接地产生低电平复位脉冲。100nF 电容的作用是吸收上电瞬间的毛刺,防止芯片在电源还没稳定时被误复位。10k 上拉不要省,否则 RESET 脚悬空,芯片可能随机复位。
程序下载有两种方式,最小系统一般两条路都要留:
| 下载方式 | 接口 | 连接 | 用途 |
|---|---|---|---|
| ISP 下载 | 2x3 排针 | MOSI、MISO、SCK、RESET、VCC、GND | 烧 bootloader、改熔丝位 |
| 串口下载 | TTL 排针 | U1-2 接模块 TXD,U1-3 接模块 RXD,DTR 经 100nF 接 RESET | Arduino IDE 日常上传 |
串口下载必须要讲清楚 DTR 自动复位这条线。Arduino IDE 在打开串口准备上传时会先把 DTR 拉低,这个低电平经过 100nF 电容耦合到 RESET,产生一个短暂复位脉冲,芯片重启并从 bootloader 开始执行,bootloader 再接收新的固件。如果没有这条 DTR 到 RESET 的线路,芯片不会自动进 bootloader,IDE 就会一直转圈报错。很多用 CH340 模块做串口下载的人,只接了 TXD、RXD、GND 这三根线,结果死活传不进程序,原因就在这里。
3. PCB设计落版:引脚排针先定住,晶振走线再谈,螺丝孔按M2/M3设
3.1 封装选型:手工焊接选DIP-28,量产和体积选TQFP-32
打样前要做一个影响全局的决定:芯片用直插还是贴片。DIP-28 封装间距 2.54mm,手工焊接难度极低,插进排针座就能换芯片,坏了随便换一颗;缺点是占面积大,而且现在很多商城 DIP 封装的价格比贴片贵。TQFP-32 封装间距只有 0.8mm,四边都有引脚,需要拖焊或热风枪,但板子面积能缩小一半以上,批量贴片便宜,适合做正式产品。
如果只有烙铁没有风枪,我建议第一版用 DIP-28,把其他元件也尽量选直插——排针、电解电容、轻触按键,整板焊接难度最低。如果决定用 TQFP-32,在嘉立创EDA里放置封装时要注意两点:一是核对 1 脚方向,丝印三角形或圆形标记必须和原理图符号一致,镜像放置会导致全部引脚错位;二是焊盘尺寸不要改成晶圆厂推荐值以下的极小尺寸,手工焊 TQFP 本来就难,焊盘再小就是给自己上难度。没有特殊理由,贴片版的阻容用 0603 或 0805 都可以,0805 手工焊更友好。
3.2 布局顺序:先放排针接口,再放芯片,最后摆晶振和电源
PCB 布局的顺序和直觉相反:不是先放芯片,而是先放排针。因为最小系统板最常见的用法是插在面包板或底板排母上,引脚位置决定了整块板的实用价值。我一般先把双排排针按 2.54mm 间距、两排间距 600mil(15.24mm)画好——这个尺寸正好匹配面包板电源轨和常见底板排母。
顺序如下:第一步画板框,第二步放双排排针,第三步把 U1 放在排针中间区域,第四步在 U1 旁边放晶振,第五步把去耦电容贴到对应 VCC 脚旁边,第六步把复位按键和 LED 放在板子边角。板框尺寸上,做兼容 UNO 引脚排列的板子可以做到 68×53mm 左右;如果只做面包板用的最小核心,35×28mm 就够,但排针区域必须留足空间,不要把元件挤到排针下方。
这里有个实际经验:晶振和 ICSP 六针排针不要放到 U1 两侧最远端。ICSP 的 SCK 正好是 D13,和板载 LED 共用同一个引脚,把 ICSP 放在 LED 附近,走线会短很多,也避免 SCK 信号绕大圈引入干扰。
3.3 布线与铺铜:晶振短走线、电源加粗、复位躲开大电流
PCB 走线要求里最优先的永远是这三条:晶振走线短、电源走线宽、信号线少跨分割。晶振到 U1 的 XTAL1、XTAL2 两脚,走线尽量短且两根线尽量等长,不要打过孔,走线正下方不要有其他信号线穿过,晶振周围铺一圈地铜隔离。很多起振不稳定的板子,问题不在电容取值,而在晶振走线绕了半块板。
电源和地线建议走 20 到 30mil 宽,有条件的话 VCC 和 GND 直接铺铜覆盖大部分区域。去耦电容的位置比容值更重要,0.1uF 电容必须放在对应 VCC 脚 3 毫米以内,远了就起不到高频滤波作用。复位走线不要超过 2cm,且远离晶振和电源电感,否则上电瞬间的噪声可能耦合到 RESET 造成误复位。
双层板默认 1.6mm 厚度,层叠不用花心思,顶层走信号和电源,底层铺地。如果板子面积小于 40×40mm,很多打样厂有低价套餐,顺手还能把螺丝孔和板边圆弧一起做了。
3.4 螺丝孔和板框:M2/M3孔位、环宽尺寸和打样留白
螺丝孔不是随便打四个孔就完事。最小系统板最常用 M2 或 M3 螺丝配合铜柱固定,规格不同,孔径和焊盘环宽也不同:
| 螺丝规格 | 建议孔径 | 焊盘环外径 | 说明 |
|---|---|---|---|
| M2 | 2.2 ~ 2.4mm | 4.0 ~ 4.8mm | 最小系统板常用,配 M2 铜柱 |
| M3 | 3.2 ~ 3.4mm | 5.0 ~ 6.0mm | 固定强度更高,板子略大时用 |
孔径比螺丝直径大 0.2 到 0.4mm,是为了留出公差,不然螺丝拧进去会挤压板层。环外径至少要达到孔径的两倍左右,否则打样厂钻完孔,环可能被打崩或者只剩很窄一圈,铜箔容易脱落。螺丝孔边缘到最近的走线或焊盘至少留 0.5mm,到板边至少留 0.8mm。四个角布孔最稳妥,如果板子要叠在底板上,孔位必须和底板的铜柱位置一一对应,这块在画板框时就要量好,别等打样回来发现孔对不上。
4. BOM元件清单:一张能直接下单的ADUINO最小系统物料单
4.1 主控与无源件的标准BOM
BOM 表是打样和采购的桥梁,栏目至少包含位号、名称、型号参数、封装、数量、用途。下面是一份完整的 ADUINO ATmega328P 最小系统物料单,照着下单就能焊出一块能跑的板子:
| 位号 | 名称 | 型号/参数 | 封装 | 数量 | 说明 |
|---|---|---|---|---|---|
| U1 | 主控 | ATmega328P-AU 或 -PU | TQFP-32 / DIP-28 | 2 | 多备一颗,熔丝锁死有后悔药 |
| Y1 | 无源晶振 | 16MHz,CL=12~20pF | 49S 或 3215 | 2 | 必须是无源两脚 |
| C1、C2 | 陶瓷电容 | 22pF(按晶振CL调整) | 0603/0805 | 4 | 晶振负载电容 |
| C3 | 陶瓷电容 | 0.1uF | 0603 | 5 | VCC 去耦,每个电源脚一颗 |
| C4 | 电解/钽电容 | 10uF/16V | 0805或直插 | 1 | 电源入口低频滤波 |
| C5 | 陶瓷电容 | 100nF | 0603 | 1 | 复位电路消抖 |
| R1 | 贴片电阻 | 10kΩ 5% | 0603 | 2 | RESET 上拉 |
| R2 | 贴片电阻 | 1kΩ 5% | 0603 | 2 | LED 限流 |
| LED1 | 发光二极管 | 红色 0805 | 0805 | 2 | 电源/状态指示 |
| SW1 | 轻触按键 | 6x6mm 四脚 | 直插/贴片 | 2 | 复位按键 |
| J1 | 排针 | 2.54mm 单排 1x6 | 直插 | 1 | 串口/电源口 |
| J2 | 排针 | 2.54mm 双排 2x3 | 直插 | 1 | ICSP 下载口 |
这里要特别注意 C3 的数量。ATmega328P 的 VCC 和 AVCC 至少需要三颗 0.1uF 去耦电容,分别放在主电源入口、U1 的 VCC 脚旁、AVCC 脚旁。只放一颗 0.1uF 的板子,数字电路开关噪声会直接影响 ADC 和复位稳定性。
4.2 替代与采购陷阱
采购最常踩的坑是型号后缀。ATmega328 和 ATmega328P 是两代产品,328P 是低功耗改进版,bootloader 和开发环境都以 328P 为准,买 328 会遇到兼容问题。ATmega328PB 则是引脚不完全兼容的变体,别看到 328 就下单,一定要核对完整型号:普通贴片是 ATmega328P-AU,直插是 ATmega328P-PU。
晶振区分有源无源是第二个高发问题。有源振荡器是四脚封装,输出已经是方波,需要接 XTAL1 而 XTAL2 悬空;无源晶振是两脚,必须接在 XTAL1 和 XTAL2 之间,外加两颗负载电容。很多新手在商城搜“16MHz”直接下单,买回来四脚振荡器,按两脚晶振画法焊上去,不起振。最小系统要用的是两脚无源晶振,这一点下单前在商品详情页确认。
电容材质也要留意。0.1uF 去耦电容选 X7R 或 NP0/C0G 材质,不要买 Y5V——Y5V 温漂大,容量会随温度和电压明显下降,去耦效果打折。10uF 滤波电容不要用普通贴片陶瓷 0603,耐压不够且容值随偏压衰减严重,用 0805 或 1206 封装,或者干脆用直插电解电容。
4.3 数量与损耗:打样焊接的采购余量
贴片电阻电容虽然便宜,但每次买都有起订量,而且手工焊接容易丢件、焊坏,所以采购数量要比 BOM 表多 30% 到 50%。芯片至少买两颗,原因不是焊接损耗,而是熔丝位操作有风险——万一不小心把 RSTDISBL 熔丝写进去,RESET 引脚变成普通 IO,这块芯片就只能靠高压并行编程器才能救回来,多备一颗就多一条后路。
晶振和按键建议各多买五个,这两种器件在焊接和运输中容易损坏或碰掉焊盘。排针按整条买,剪成需要的段数。如果走立创商城,可以把 BOM 表直接导入,系统会自动匹配封装和库存,但导入后一定要检查封装名和位号是否对应,特别是 TQFP-32 这类多引脚封装,封装选错在贴片时才会暴露,返工成本远高于下单时多花两分钟核对。
5. 打样焊接避坑:5个让新手翻车的典型问题,逐个对照排查
5.1 写入失败:avrdude 报 programmer is not responding
现象:用 USBasp 或另一块 Arduino 做 ISP 给最小系统板烧 bootloader,终端输出avrdude: error: programm enable: target doesn't answer或programmer is not responding,芯片毫无反应。
原因:九成是 ICSP 六针接线错误,最常见的是 MISO 和 MOSI 对调;其次是芯片没供电,ISP 排针的 VCC 没有接实际电源;还有一种是 ISP 时钟太快,芯片在低电压或晶振未稳定时响应不过来。
解决:第一步用万用表蜂鸣档量板上的 VCC 和 GND 排针,确认供电正常;第二步按 ICSP 标准定义逐条核对——MISO 必须接芯片的 MISO 脚(PB4),MOSI 接 PB3,SCK 接 PB5,RESET 接复位网络;第三步给 avrdude 加-B 4放慢 ISP 时钟。这个报错本身就是最有价值的排查入口:它说明 ISP 物理层没握手成功,先查线,再查电,最后才怀疑芯片。
5.2 晶振没跑:新芯片默认内部1MHz,16MHz根本不工作
现象:bootloader 烧录成功,但在 Arduino IDE 里选好端口点击上传,程序也能进去,LED 的 Blink 节奏慢到像蜗牛,打开串口监视器收到的全是乱码。
原因:这颗芯片出厂熔丝位配置的是内部 8MHz RC 振荡器,并且默认开启了八分频,实际时钟只有 1MHz。外部 16MHz 晶振虽然焊在板上,但芯片根本没启用它。串口波特率是按 16MHz 计算的,实际跑在 1MHz 自然全是乱码。同时 1MHz 下延时函数执行时间是 16 倍,Blink 的 500ms 延时实际等了 8 秒。
解决:必须先用 ISP 工具把熔丝位改掉,再烧 bootloader。标准配置是lfuse=0xFF, hfuse=0xDE, efuse=0xFD,含义是选择外部晶体振荡器、关闭时钟八分频、使能 boot 区启动。如果这块板将来要用 8MHz 晶振降频运行,熔丝位要重新算。厂商出厂熔丝读写不保证这次做完下次还能烧,所以每次改熔丝前,先用avrdude -U lfuse:r:backup.hex:r把原值备份出来存好,这就是熔丝操作的后悔药。
5.3 串口下载没反应:DTR自动复位没焊
现象:bootloader 烧好了,接上 CH340 串口模块,IDE 点上传,进度条转几秒后报avrdude: stk500_recv(): programmer is not responding;但换回 ISP 下载又能正常烧录。
原因:芯片确实在跑 bootloader,但串口模块的 DTR 信号没有接到 RESET。Arduino IDE 上传固件前会通过 DTR 拉低产生复位脉冲,让芯片重启进入 bootloader。DTR 没接,芯片老老实实跑着用户程序,不理会下载请求。
解决:把串口模块的 DTR 或 RTS 引脚经一颗 100nF 电容接到 RESET 网络,同时保证模块和板子共地。如果模块上没有 DTR 引脚,可以在 IDE 点上传的瞬间手动按一下复位按键,让芯片恰好进入 bootloader 窗口也能凑合下载,但每次都要掐点,体验很差。实际项目里我都是把这颗 100nF 电容直接画进 PCB,DTR 从排针引入,做串口下载的同时也能做软复位控制。
5.4 ADC读数乱跳:AVCC和AREF处理不当
现象:用 potentiometer 或传感器接 ADC 引脚,analogRead 返回值在几百的范围内来回跳,甚至手靠近芯片读数就变,换了传感器也一样。
原因:AVCC 悬空,ADC 模块的供电不稳定;AREF 悬空,基准电压被空间噪声耦合;电源入口没有低频滤波电容,5V 纹波直接进 ADC。
解决:AVCC 接 VCC,并在 AVCC 脚旁边放 0.1uF 到 GND;AREF 对地接 100nF 电容;电源入口保留 10uF 电解电容。改完再读一次,数值跳动范围应该缩到正负几 LSB。如果还跳,用万用表量 5V 对地纹波,超过 100mV 说明电源端滤波不够。软件侧也可以在读取时做多次采样取平均,但硬件处理不好,软件平均只是掩盖问题。
5.5 芯片烫手或一上电就短路
现象:接上 5V 电源,芯片壳体明显发烫,或者电源指示灯亮一下就灭,万用表测 5V 和 GND 之间电阻接近零。
原因:最常见是 VCC 和 GND 焊反;其次是 TQFP-32 引脚间距只有 0.8mm,焊接时相邻脚连锡,把内部电路短路;第三是排针相邻针脚之间残留焊锡搭桥。
解决:焊接完成后、通电之前,先用万用表二极管档测 5V 和 GND 之间的压降,正常在 0.4V 左右(体二极管方向),接近 0 说明有短路。排查连锡要借助放大镜或手机微距拍照,重点看 TQFP 四边引脚和排针焊盘。发现连锡后涂助焊剂,用吸锡带沿引脚方向拖一遍,基本能清理干净。我自己的习惯是焊完先不装芯片,空板上电量各点电压,确认无误再装芯片,这一步能避免至少一半的烧片事故。
6. 打样回来这样验证:烧bootloader、点灯、串口回环一次跑通
6.1 用USBasp写入熔丝和bootloader
板子焊好后第一件事不是接串口,而是用 ISP 工具把熔丝位和 bootloader 一次写好。以 USBasp 为例,完整命令如下:
avrdude -c usbasp -p m328p -B 4 \ -U lfuse:w:0xFF:m \ -U hfuse:w:0xDE:m \ -U efuse:w:0xFD:m \ -U flash:w:optiboot_atmega328.hex参数说明:-c usbasp指定下载器类型,如果你用另一块 Arduino 做 ISP,则改成-c arduino -P /dev/ttyUSB0(Linux)或对应 COM 口(Windows);-p m328p是指定目标芯片,ATmega328P 的设备码就是 m328p;-B 4是把 ISP 时钟降到约 250kHz,对刚焊好的板子和没改熔丝的芯片更稳;三条-U分别写低熔丝、高熔丝、扩展熔丝,然后写 flash。optiboot_atmega328.hex 这个文件在 Arduino IDE 安装目录的 bootloaders/optiboot 下可以找到,IDE 装完就有,不需要额外下载。熔丝值如果拿不准,先只烧 flash 不烧熔丝,验证能连上芯片后再改熔丝。
6.2 点灯与串口回环验证
熔丝和 bootloader 写完,这块板就跟普通 Arduino UNO 没区别了。在 IDE 里选好板型和端口,先传一个最简单的验证程序:
#define LED_PIN 13 void setup() { pinMode(LED_PIN, OUTPUT); Serial.begin(9600); } void loop() { digitalWrite(LED_PIN, HIGH); delay(300); digitalWrite(LED_PIN, LOW); delay(300); if (Serial.available()) { char c = Serial.read(); Serial.print("echo:"); Serial.println(c); } }这段程序同时验证三件事:D13 上 LED 是否按 300ms 节奏闪烁,串口能否正常初始化,以及串口收发是否通。用串口助手给板子发一个字符,如果回显echo:x就说明 TXD、RXD 线路正确。如果点灯正常但串口乱码,优先检查波特率是否两侧一致,以及 GND 是否共地。如果点灯都不亮,回到第 5 章从电源和复位开始查。
打完样拿到板子,我的固定流程是:先量电源短路,再空板上电测电压,然后装芯片烧熔丝,最后跑点灯和串口。这套流程走得顺,说明原理图、PCB、BOM 三样东西闭环了。往后做自动复位、外部中断、ADC 采集都在这块底板上扩展,希望帮到你。
本文还有配套的精品资源,点击获取