電路作用與每個器件
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 高電平穩定,由上拉電阻維持
📌 這樣你可以很清楚地看到:電容就是通過“先短路、后逐漸放開、最后開路”的方式,保證復位信號有 穩定的低電平保持 + 平滑的釋放上升沿。