程式中我可能打開多個串口,對這些串口用sio_cnt_irq設定同一個中斷函式可以嗎?
比如編譯上沒有錯我,但是執行上我不確定啊。
比如:串口1、2、3都設定了中斷函式void __stdcall Receive_Callback(int port);那么某一刻1串口觸發了該中斷函式,在處理1串口的回傳值時(沒有處理完),此時2串口有資料會不會觸發中斷,如果觸發了會不會對1串口的處理產生影響?
請不吝賜教
uj5u.com熱心網友回復:
進入中斷處理后立即關閉中斷,退出中斷處理前再打開中斷。似乎同一個中斷不會重入。
uj5u.com熱心網友回復:
首先你要理解函式呼叫的原理.如果你的回呼中使用的變數都是區域變數, 或者說都是在函式中才動態分配的. 那么第次呼叫時, 這些變數的堆疊或者堆地址都是不同的.
所以你呼叫多少次都沒有關系, 也不會相互影響.
但是, 如果你的函式中在訪問同一個全域變數, 那么每次呼叫, 就可能導致這個全域變數變化, 進而影響其它呼叫的地方.
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/136633.html
標籤:硬件/系統
上一篇:opengl 骨骼影片
下一篇:這個錯誤咋改啊?求解
