久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2966|回復: 7
收起左側

關于51單片機串口中斷,為什么中斷函數中還要判斷RI==1

[復制鏈接]
ID:1004408 發表于 2022-2-9 21:16 | 顯示全部樓層 |閱讀模式
初學51,學到串口通信,了解了串口中斷進入中斷程序是接收到數據RI置1,但是既然只有RI置1才能進入中斷,為什么中斷函數中還要判斷RI==1
既然存在,必有其合理之處,煩請各位大佬解釋一下啊!謝謝!

單片機源程序如下:
#include <REGX52.H>
#include <intrins.h>

void UART_Init()
{
        SCON=0x50;//8位
        PCON &= 0x7F;//
        TMOD &= 0x0F;//高四位清零
        TMOD |= 0x20;//高四位賦值
        TH1=0xFD;
        TL1=0xFD;
        ET1=0;//禁止定時器1中斷
        TR1=1;//開啟計時
        
        EA=1;
        ES=1;//串口中斷允許
        /*因為不知道什么時候會收到信息,但也不能一直等待
        所以就用了串口中斷!
        */
}

void main()
{
        UART_Init();
        while(1)
        {
               
        }
}
void js() interrupt 4//串口中斷---進入中斷的條件就是TI/RI置1(串口發送或接收完成TI和RI中斷),并且需要軟件置零
{
//        P2=0x00;       //此時不管你發送什么,他都會亮,因為只要接收到信號,他就會進入中斷
        if(RI==1)       //RI---receive就是收到數據
                {              
                P2=~SBUF;
                RI=0;//軟件置零
        }
}
回復

使用道具 舉報

ID:624769 發表于 2022-2-9 22:33 | 顯示全部樓層
除了 RI==1  ,
TI == 1  也能進入中斷,所以,不僅僅要判斷RI,還要判斷TI。
當然,你也可以認為 RI == 0 的時候,是因為TI ==1 進入的中斷。
回復

使用道具 舉報

ID:878061 發表于 2022-2-9 23:23 | 顯示全部樓層
是的,在你這個程序里面也許可以省略,但是串口中斷可以是接收中斷也可以是發送中斷,所以要進行判斷
回復

使用道具 舉報

ID:514254 發表于 2022-2-10 00:20 | 顯示全部樓層
interrupt 4是串行的中斷號,但是包含了發送TI和接收RI串行中斷,因此進入到中斷里面不一定是由接收RI引起的,因此需要判斷下,不過一般發送用子程序,是主動過程,接收進中斷,但是需要簡單判斷下。
回復

使用道具 舉報

ID:161164 發表于 2022-2-10 00:43 | 顯示全部樓層
//串口中斷---進入中斷的條件就是TI/RI置1(串口發送或接收完成TI和RI中斷),并且需要軟件置零
/*----------------------------
STC-ISP 范例
----------------------------*/
void Uart_Isr() interrupt 4
{
    if (RI)
    {
        RI = 0;             //Clear receive interrupt flag
        P0 = SBUF;          //P0 show UART data
    }
    if (TI)
    {
        TI = 0;             //Clear transmit interrupt flag
        busy = 0;           //Clear transmit busy flag
    }
}
回復

使用道具 舉報

ID:1004408 發表于 2022-2-10 17:07 | 顯示全部樓層
lkc8210 發表于 2022-2-10 00:43
//串口中斷---進入中斷的條件就是TI/RI置1(串口發送或接收完成TI和RI中斷),并且需要軟件置零
/*------- ...

懂了,謝謝大佬
回復

使用道具 舉報

ID:1004408 發表于 2022-2-10 17:08 | 顯示全部樓層
188610329 發表于 2022-2-9 22:33
除了 RI==1  ,
TI == 1  也能進入中斷,所以,不僅僅要判斷RI,還要判斷TI。
當然,你也可以認為 RI ==  ...

好滴,謝謝大佬
回復

使用道具 舉報

ID:1004408 發表于 2022-2-10 17:08 | 顯示全部樓層
huashanhui20 發表于 2022-2-9 23:23
是的,在你這個程序里面也許可以省略,但是串口中斷可以是接收中斷也可以是發送中斷,所以要進行判斷

謝謝大佬
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 色888www视频在线观看 | 中文字幕一区二区三区在线观看 | 中文字幕日韩一区 | 欧美视频在线一区 | 欧美一级在线 | 国产综合在线视频 | 中文字幕一区二区三区在线观看 | 伊人久久精品一区二区三区 | 激情五月综合 | 亚洲精品美女 | 亚洲一区二区久久 | 国产精品久久久久久网站 | 中文字幕在线第一页 | 一区二区中文字幕 | 欧美黄色一区 | 亚洲国产中文在线 | 久优草 | 中文字幕视频在线观看 | 一级一片在线观看 | 日韩欧美在线视频 | 男人天堂网址 | 日韩高清一区 | 国产粉嫩尤物极品99综合精品 | 国产精品美女久久久 | 伦理一区二区 | 喷潮网站 | 成人在线国产 | 国产免费看 | 国产极品粉嫩美女呻吟在线看人 | 午夜视频在线视频 | 亚洲精品一二三区 | 久草视频在 | 午夜av电影院 | 色视频在线免费观看 | 99热欧美 | 亚洲国产一区二区三区 | 91精品国产91综合久久蜜臀 | 亚洲精品成人av | 精品少妇一区二区三区日产乱码 | 成人亚洲精品久久久久软件 | 久久99精品国产自在现线小黄鸭 |