通過MDK工具確定中斷或異常發生的型別

2021-09-11 19:21:43 字數 582 閱讀 2480

環境:stm32f103

中斷的確定方法:

準備:先觸發uart1的接收中斷

方法1:觀察下面的視窗(這種方法適合中斷和異常)

register中的isr表示當前發生中斷的編號為53,然後在nvic視窗中查53號對應的中斷型別即可

方法2:觀察下面的視窗(這種方法僅適合中斷)

iabr:某個中斷發生時,其對應的bit位就自動設定為1,然後查控制器對應的中斷位置,就可以確定中斷觸發的型別

方法3:觀察下面的視窗(這種方法適合中斷和異常)

vectactive:是當前活動的isr編號,該位段指出當前執行中的isr是哪個中斷或異常的。

結論:可以看出通過方法3是最好的方式,並且適合中斷和異常

MDK中變數被優化的問題

在最近的專案中遇到乙個奇葩的問題,在debug時發現if語句裡面的條件全都為真,即是if 1 卻不執行if語句的程式 段,結果被這個問題折磨了一下午,後來經過大佬們的指點得知原來是因為編譯器對變數進行了優化 所以導致了該變數的值並不是最新的,二我們在debug的時候看到的卻是變數的最新的值。所以導致...

通過eq(i)精確定位遍歷的元素中的某個元素的值

name hobby eq i siblings mid je children span text name hobby 定位遍歷的元素 name hobby eq i 精確定位到所有元素中的某乙個 function jshj p2 children span text total else 登高...

C 中確定型別

includeusing namespace std templatestruct iter t operator const templatetypename i value type 這一整行是func的返回型別func i item int main itert new int 10 cout...