欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

STC8單片機串口2中斷后程序運行變慢

查看數: 3216 | 評論數: 3 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2022-2-11 11:39

正文摘要:

各位大神,我在學校STC8A8K64S4A12單片機,用到串口2中斷通信, 屏蔽掉中斷程序時,其他程序運行速度很快,但一旦投入中斷程序,且下載進去,程序進入串口2中斷程序時,整個程序運行就變得很慢很慢了, 這是哪的問 ...

回復

ID:401564 發表于 2022-2-11 16:25
if (!S2RI) return;
這就是錯的
串口2的中斷標志位不能位尋址
只能用 if ((SCON2&S2RI)來進行判斷
ID:161164 發表于 2022-2-11 14:45
void commIntProc(void) interrupt 8
{
  if (!S2RI) return;//S2RI串口2接收中斷請求標志位
//下略。。。
}
S2RI在STC8.h里#define 為0x01(314行), 可以算是常數

當串口2有收到數據時, 串口2中斷標志(SCON2位0)置位
進入串口2中斷,if(!S2RI) => if(!0x01) => 永遠為真-> return 跳出串口2中斷
但是串口2標志(SCON2位0)沒有被清零,立刻再次進入串口2中斷
不斷循環

修改方法在我的貼子中已經回答
但正被admin審查中


ID:625730 發表于 2022-2-11 13:38
為什么會頻繁進入串口接收中斷?要檢查一下其它代碼。因為你的程序頻繁執行中斷函數,所以其它的功能運行就受到影響了。

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表