來源:轉載自21ic論壇極海半導體專區
問題:APM32F003F6P6 PC3配置成外部中斷口,下拉觸發之后沒有進入EINTC_IRQHandler外部中斷函數,反而一直觸發NMI中斷。
問題分析:之前使用的時候配置過選項字節AFR3,導致將PC3配置為不可屏蔽中斷了,所以會一直進NMI中斷。003的引腳重定義方式與其他系列有區別,需要在選項字節中配置復用功能。需注意重定義配置在選項字節中,擦除flash不會擦除重定義后的引腳功能就只能用重定義的功能,要換回默認功能也要選項字節中配置失能。
解決方案:將選項字節AFR3 DISABLE之后重新燒錄可以正常使用,進去到PC3中斷。
?
?
?
NMI不可屏蔽中斷這個是用來干嘛的?
NMI(Non-Maskable Interrupt,不可屏蔽中斷)是一種特殊類型的中斷,其優先級高于普通的可屏蔽中斷,并且無法被通過中斷屏蔽位(Interrupt Mask)來屏蔽或禁用。如__disable_irq();//關閉全局中斷后,如果某個外設中斷設置為不可屏蔽中斷,則該中斷依然可以響應,不受系統中斷開關的影響,NMI 通常用于處理一些非常緊急和重要的系統事件,即使系統處于某種異?;蚬收蠣顟B,也需要被及時處理。
NMI不可屏蔽中斷的應用場景:
硬件故障處理:NMI通常用于處理硬件故障,例如內存錯誤、總線錯誤、電源故障等。當這些硬件故障發生時,系統需要立即響應以避免嚴重的后果。
監控和診斷:NMI可以用于監控和診斷系統狀態。例如,系統監控器可以通過NMI來收集關鍵的性能數據或者系統狀態信息,以便在必要時進行診斷和分析。
系統安全:NMI可以用于處理與系統安全相關的事件,如內存溢出、非法訪問嘗試等。這樣的事件可能會威脅到系統的安全性,需要立即采取措施來應對。
實時系統:在實時系統中,NMI可以用于處理與實時性相關的事件,例如定時器溢出。這些事件需要在嚴格的時間約束內得到處理,以確保系統能夠按時響應。
緊急情況處理:在某些情況下,系統可能會遇到需要立即處理的緊急情況,例如自毀程序的檢測、火災報警等。NMI可以用于處理這些緊急情況,確保系統能夠及時采取行動。
注:文章作者在原帖中提供了例程文件,有需要請至原文21ic論壇下載
原文地址:https://bbs.21ic.com/icview-3370228-1-1.html
-
中斷
+關注
關注
5文章
904瀏覽量
42524 -
定時器
+關注
關注
23文章
3287瀏覽量
117212 -
引腳
+關注
關注
16文章
1564瀏覽量
52349 -
NMI
+關注
關注
0文章
8瀏覽量
9977
原文標題:APM32芯得 EP.54 | APM32F003 一直觸發NMI中斷
文章出處:【微信號:geehysemi,微信公眾號:Geehy極海半導體】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
用apm32f003替換STM32進行低成本系統開發

基于J-Link解除APM32F003讀保護
APM32F003F6P6_NVIC_能否通過VTOR寄存器實現中斷向量重定位

極海APM32F407工業HMI應用方案助您增強交互體驗

極海APM32F003 MCU通過IEC 60730/60335功能安全認證

評論