大家在進(jìn)行MCU項目開發(fā)時是否碰到過EXTI外部中斷在錯誤的邊沿誤觸發(fā)的情況?比如EXTI配置的為下降沿觸發(fā),實際情況在個別上升沿的時候也被誤觸發(fā)了。
這個異?,F(xiàn)象編者之前碰到過一次,期望上升沿觸發(fā)EXTI中斷,卻概率性的出現(xiàn)下降沿也被誤觸發(fā)了中斷,經(jīng)過排查發(fā)現(xiàn),發(fā)生異常情況下的下降沿比較緩,且下降過程中有波動,類似下圖情況,該毛刺被MCU捕獲到,誤識別為一個上升沿進(jìn)而誤觸發(fā)了EXTI中斷。
GD32 MCU的輸入高電平識別為高于0.7VDD,低電平識別為低于0.3VDD,在中間電平波動更容易被誤觸發(fā)中斷。

解決方法上,可以有以下選擇:1、硬件方式解決:增加濾波電容,濾除錯誤邊沿的毛刺;調(diào)整邊沿斜率,讓引腳電平更快跳變,減少在中間電平階段的時間;2、軟件方式解決:增加軟件濾波,進(jìn)入中斷后延遲進(jìn)行讀取引腳電平狀態(tài),如果為錯誤的電平狀態(tài),即可認(rèn)為一個異常的毛刺干擾,丟棄當(dāng)次狀態(tài)處理。
以上即為本期講解,如有問題或建議,歡迎評論區(qū)討論。