請問"中斷"到底是如何發生,系統在哪時偵測到有中斷發生?

2019-07-20 23:49发布

本帖最后由 KCLin 于 2016-2-3 22:32 编辑

最近研讀到串口通訊實驗main() 程式
一開始是做各種初始化
然後while(1){
if(USART_RX_STA&0x8000)

{ ..... }
這段應該是說,有 data 進來
但是,是哪個程式去讀了關於 USART_RX_STA 的變化?
做了 Debug 實在是追不到!


又 在 usart.c 裡面
除了一些串口的初始化之外
還多了
void USART1_IRQHandler(void)  
{..........}
我大概知道,這個函數是要告訴系統,如果系統發生中斷,就來 run 這個函數
那麼,又是哪個程式負責呼叫他的?!
是不是這個函數,其中一個參數必須是 *USART1_IRQHandler
也就是傳遞中斷發生時觸發函數的 位置
(所以其實中斷觸發函數的名稱我們也可以隨意設定,只要把要做的函數位置正確傳遞即可?)

這是不是跟 USART_RX_STA 的變化有關?


新手,邏輯被搞得有些亂了
請各位前輩高手幫助解惑,感謝






友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。