|
各位大神,我在學(xué)校STC8A8K64S4A12單片機(jī),用到串口2中斷通信,
屏蔽掉中斷程序時,其他程序運(yùn)行速度很快,但一旦投入中斷程序,且下載進(jìn)去,程序進(jìn)入串口2中斷程序時,整個程序運(yùn)行就變得很慢很慢了,
這是哪的問題?請有明白的大神指點指點。「兄x感謝。
我用的串口2中斷程序如下
void commIntProc(void) interrupt 8
{
if (!S2RI) return;//S2RI串口2接收中斷請求標(biāo)志位
S2CON &= ~S2RI;//S2RI不能位操作。復(fù)位串口2接收中斷請求標(biāo)志位
//S2RI = 0;//這樣操作錯誤。復(fù)位串口2接收中斷請求標(biāo)志位
a3++;//顯示累計進(jìn)入中斷的次數(shù)
receTimeOut = 100;
receBuf[receCount] = S2BUF;
//S2CON=S2CON & 0xfe;//清零接收標(biāo)志位S2RI
receCount ++;
receCount &= 0x1f; // 最多只接收32個字節(jié)數(shù)據(jù)
}
為了能證實進(jìn)入中斷,我在中斷程序里放了個a3++的指令(如上代碼a3++;),a3值顯示在OLED屏上,明顯能看出這個a3在大幅度的變化。
可以確定程序進(jìn)入了中斷程序,而且頻繁進(jìn)入中斷,導(dǎo)致a3不停的高速自加,所以屏才顯示a3的數(shù)值大幅度變化的。
后來,我在后面加入了行清零指令,就是S2CON=S2CON & 0xfe;//清零接收標(biāo)志位S2RI這行,但還是沒有啥效果,
請有明白的大神指點指點。「兄x感謝!
我的屏顯示a3如下
51hei截圖_20220211110929.jpg (53.4 KB, 下載次數(shù): 37)
下載附件
2022-2-11 11:26 上傳
51hei截圖_20220211111137.jpg (165.28 KB, 下載次數(shù): 36)
下載附件
2022-2-11 11:26 上傳
OLED觀察如下
as.gif (5.55 MB, 下載次數(shù): 51)
下載附件
2022-2-11 11:39 上傳
|
|