新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機串口中斷發送的實現與特點

        單片機串口中斷發送的實現與特點

        作者: 時間:2016-11-22 來源:網絡 收藏
        假設要發送一組數據 Send[10]
        一般采用查詢發送(循環發送)方式:
        unsigned char Send[10]; //發送量
        unsigned char i; //循環量
        for(i=0;i<10;i++)
        {
        SBUF= Send[i]; //發送
        while(TI==0);//等待發送完成
        TI=0; //清標志
        }

        采用中斷發送方式:
        unsigned char Send[10];//發送量
        unsigned char num; //發送數據量
        unsigned char *p; //發送用指針

        //發送時:
        num=10; //定義發送數據量
        p=&Send ; //取首地址
        SBUF=*p; //發送第一個數據,啟動發送中斷
        //中斷代碼:
        void ComInt() interrupt 4
        {
        if(RI)RI=0; //接收中斷略;

        if(TI) //發送中斷處理
        {
        TI=0; //清標志
        num--; //計數減1
        p++;//指針加1
        if(num >0) SBUF=*p; //數據繼續發送至全部發完
        }
        }

        中斷發送優點:省去循環等待時間,以上面例子為例,9600bps時查詢發送約占用單片機10ms多,而中斷發送只占單片機幾十微秒(單片機速度越快,占用時間越少)。
        中斷發送缺點:代碼稍復雜,發送過程不易控制。


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 扎兰屯市| 察隅县| 兴化市| 佳木斯市| 平舆县| 平武县| 沅陵县| 霍城县| 嘉善县| 凤阳县| 南汇区| 锡林郭勒盟| 彰化县| 达孜县| 马关县| 高要市| 衡山县| 绍兴市| 泽库县| 刚察县| 桑植县| 崇明县| 琼中| 夏津县| 霍林郭勒市| 嫩江县| 新晃| 睢宁县| 武定县| 磐安县| 三亚市| 武安市| 济宁市| 科技| 普陀区| 汉川市| 蓬安县| 贡山| 汾阳市| 西丰县| 婺源县|