中斷分類
- 定時器中斷
- 外部中斷
- 串口中斷
以上爲自己遇到的中斷總結,不是專業的中斷分類
串口通信終端
一、如何接收一串數據
不管數據多少,串口都是一個字節一個字節的收的
如何設計,思路等,後續補充。
二、進入中斷的條件
進入串口中斷至少應該具備四個條件:
- 第一,串口使能;
- 第二,串口中斷使能;
- 第三,開總中斷;
- 第四,設置對應的中斷向量及中斷服務函數。
注意:USART模塊初始化的順序是:SWRST=1的情況下設置串口;後設置SWRST=0使模塊正常工作;最後如果需要中斷,則設置相應的中斷使能。即,中斷使能要在SWRST=0後設置。
如下程序中相應爲:
ME2|=UTXE1+URXE1;//串口發送、接收使能;
IE2|=URXIE1;//串口接收中斷使能;
_EINT(); //開總中斷;
中斷向量#pragma vector=UART1RX_VECTOR //接收中斷向量。
三、中斷標誌位
當發送緩衝區UTXBUF中裝入數時,發送中斷標誌位UTXIFGx被置位,即置1;當退出發送中斷後,UTXIFGx自動被清0;有時需要IFG1&=~UTXIFG0操作是爲清除POR造成的UTXIFG0置位;
因:當發生PUC或者SWRST=1時,UTXIFGx被置位。
每當有數據被收到並且裝入到URXBUF中時,接收中斷標誌位URXIFGx被置位,即置1;當中斷服務程序被啓動或URXBUF被讀出,URXIFGx自動復位。
四、中斷使能位
IE1 |= UTXIE0;
IE1 |= URXIE0;
目前,還不是十分清楚其中機理,需要日後逐漸完善。
外部中斷
P1和P2口的每個管腳都有中斷功能
外部中斷配置過程:
P1DIR &= ~BIT3;
P1IES = BIT3;
P1IE = BIT3;
P1IFG = 0;
_EINT();
第一步,將 第一步,將 第一步,將 P1DIR中的按鍵引腳設置爲輸入
第二步,設置 BIT3 位爲下降沿中斷,0爲上升沿中斷
第三步,打開 P1 BIT3 的中斷
第四步,確認清空中斷標誌(外部進入之後不會自動除要手第四步,確認清空中斷標誌(外部進入之後不 會自動除要手
最後,打開總中斷。
中斷標誌位
外部中斷進入後不會自動清除中斷標誌,要手動清除,不然會持續進入中斷函數。