
电路作用与每个器件
-
R1(10 kΩ,上拉到 3V3)
让 NRST 在无外力时保持高电平=不复位;同时与电容形成 RC,决定上电复位延时。阻值不能太小(否则调试器或芯片复位驱动下拉电流太大),10 kΩ是通用值。
-
K1(按键到 GND)
人工复位。按下立即把 NRST 拉低=异步复位;松开后靠 R1 把 NRST 拉高,电容让上升沿变缓,起到去抖与延时作用。
-
C3(0.1 µF 到 GND)
提供 上电/松手后的延时与抗干扰。抑制尖峰与毛刺,避免误复位;也能在电源很慢爬升时,保证"电源稳定后再释放复位"。
多数 STM32 的 NRST 口内置一只约 40--50 kΩ 的弱上拉;外接 10 kΩ 后并联等效约 8 kΩ,有利于抗干扰但不会过载拉低驱动。
上电与松手时序(为啥能"稳")
上电或松开按键后,NRST 电压按 RC 充电关系上升:
V_{NRST}(t) = V_{DD}\\big(1-e\^{-t/RC}\\big), \\quad R\\approx 10\\,\\text{k}\\Omega,\\ C=0.1\\,\\mu\\text{F}
-
RC = 10k × 0.1µF = 1 ms
-
当 NRST 的上升阈值取不同比例时,释放复位的近似时间:
-
0.5·VDD:t≈0.693 RC≈0.69t \\approx 0.693\\,RC \\approx 0.69t≈0.693RC≈0.69 ms
-
0.7·VDD:t≈1.20 RC≈1.2t \\approx 1.20\\,RC \\approx 1.2t≈1.20RC≈1.2 ms
-
0.8·VDD:t≈1.61 RC≈1.6t \\approx 1.61\\,RC \\approx 1.6t≈1.61RC≈1.6 ms
-
这 1~2 ms 的延时确保:
-
上电后 等电源稳定再起跑;
-
按键松开回弹的抖动被 RC 滤掉,不会刚松手就误判为已高电平。
传统"复位按键抖动"主要发生在松开瞬间,RC 能把高沿拉得更迟缓、更干净。
为何外部 RC 仍然必要(芯片已带 POR/BOR)
STM32 确有 上电复位 POR / 检测 PDR / 掉电复位 BOR,但外部 RC 仍然能提供:
-
对慢爬升电源 或噪声/浪涌更强的免疫力;
-
配合 BOOT0(在 NRST 上升沿锁存)保证其电平已稳定;
-
可靠的人工复位 与调试器控制(ST-Link 的 NRST 为开漏下拉,10 kΩ 不会影响)。
参数怎么选
-
想更长的上电延时:把 C3 改为 1 µF(得 ~10 ms)、或 R1 改为 47 kΩ(得 ~4.7 ms)。
-
干扰环境很重 (电机、继电器旁):可把 C3 提到 220 nF~1 µF;或在 NRST 与芯片脚之间串 100--220 Ω 小电阻以限流、抑制快沿。(多数场景不必加)
-
按键去抖:RC 已基本够用;若仍不稳,检查按键到地的走线与 ESD 路径。
布局布线建议
-
R1 与 C3 紧贴 MCU 的 NRST 脚放置,回地要短直;避免 NRST 线路穿越强噪声区;必要时用地铜"围一圈"。
-
复位按键尽量靠近 MCU 一侧,长线可并联 小电容(几 pF~几十 pF) 或增加串阻,避免外界耦合。
-
调试接口(SWD)到 NRST 的线也要短,避免形成天线引入毛刺。
常见问题与诊断
-
无缘无故复位:多半是 NRST 进了毛刺或 VDD 掉电触发 BOR;示波看 NRST 是否出现短暂低脉冲,必要时增大 C3。
-
复位牵连调试异常 :R 太小或 C 太大都会让调试器拉不动或复位释放太慢;通常 10 kΩ + 100 nF 最稳妥。
-
上电跑飞:电源爬升慢或 BOOT0 未稳,适当提高 RC 延时,或检查 BOOT0 的下拉是否足够(典型 10 kΩ→GND)。
结论 :
这套 10 kΩ 上拉 + 0.1 µF 到地 + 复位按键 的 NRST 电路,是 STM32 的经典、可靠做法。它在上电、人工复位与抗干扰方面提供恰到好处的延时与滤波,既不影响调试器拉低,也能保证系统在电源稳定后再释放复位。若现场环境更严苛,只需按需微调 R 或 C 即可。
如何理解,当按下按键后松开。这个时候电容相当于短路状态。当电容充满电后,电容相当于断路状态
"电容相当于短路 / 断路"的理解,来源于电容在不同工作阶段的等效电路模型,是一个很重要的电路分析思路
1. 电容的本质
电容的电流、电压关系是:
i = C \\dfrac{dv}{dt}
意思是:电容上的电压不能突变,电容两端电压的变化速度决定了电流大小。
2. 按键按下(NRST 拉到 GND)
-
这时电容一端被拉到 GND ,另一端直接和按键相连,所以电容被迅速放电,电容两端电压接近 0。
-
在电路角度:电容放电时瞬间电流较大,可以等效为短路,即电容就像一根导线,快速把残余电荷释放掉。
3. 松开按键(NRST 松开,上拉电阻+电容)
-
松开后,R1 将电容上端拉向 3.3V。
-
电容两端电压从 0 V 开始充电,上升是一个指数曲线:
V(t) = V_{DD}\\left(1 - e\^{-t/RC}\\right)
-
在刚开始时,电容电压为 0 V,相当于电容"还没充电",此时它阻止电压突然跳变 → 等效为短路。
-
随着电容逐渐充满电,电流越来越小,最终趋近于 0,相当于断路(开路),电容两端电压稳定在 VDD。
4. 总结直观理解
-
刚接通电源或松开按键瞬间:电容两端电压不能立刻上升 → 电容就像短路,强行"拖住"节点电压不上升。
-
电容充电完成后:电流停止流动 → 电容就像开路,不再影响电路。
👉 所以电容在瞬态过程中就是一个"短路到开路的过渡元件":
-
瞬态时短路(抑制电压突变,提供延时),
-
稳态时开路(不影响直流工作点)。
画出了一个 等效电路状态图 ,更直观地展示了电容在 STM32 复位电路中,按键松开后从 短路 → 电阻状 → 开路 的演变过程:


阶段 1:松手瞬间(电容≈短路)
-
电容两端电压 = 0 V
-
电容强行"拖住"NRST 节点不让它马上升高 → 等效短路
-
MCU 保持在复位状态
阶段 2:充电过程(电容=电阻状)
-
电容开始充电,电压逐渐上升
-
电容阻抗介于 0 ~ ∞ 之间 → 等效成"电阻"
-
NRST 电压逐渐爬升,接近阈值(如 0.7·VDD)时,MCU 开始退出复位
阶段 3:稳态(电容≈开路)
-
电容充满电,电流≈0
-
电容相当于开路,不再影响电路
-
此时 NRST 高电平稳定,由上拉电阻维持
📌 这样你可以很清楚地看到:电容就是通过"先短路、后逐渐放开、最后开路"的方式,保证复位信号有 稳定的低电平保持 + 平滑的释放上升沿。