<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > C51:串口接收和發(fā)送,查詢與中斷方法

          C51:串口接收和發(fā)送,查詢與中斷方法

          作者: 時(shí)間:2016-11-09 來源:網(wǎng)絡(luò) 收藏
          假設(shè)要發(fā)送一組數(shù)據(jù) Send[10]一般采用查詢發(fā)送(循環(huán)發(fā)送)方式:

          本文引用地址:http://www.ex-cimer.com/article/201611/318053.htm
          unsigned char Send[10];                  //發(fā)送量 unsigned char i;                         //循環(huán)量 for(i=0;i<10;i++) {        SBUF= Send[i];                    //發(fā)送        while(TI==0);                     //等待發(fā)送完成        TI=0;                             //清標(biāo)志 } 


          采用中斷發(fā)送方式:

          unsigned char Send[10];                  //發(fā)送量 unsigned char num;                       //發(fā)送數(shù)據(jù)量 unsigned char *p;                        //發(fā)送用指針   //發(fā)送時(shí): num=10;                                  //定義發(fā)送數(shù)據(jù)量 p=&Send ;                                //取首地址 SBUF=*p;                                 //發(fā)送第一個(gè)數(shù)據(jù),啟動(dòng)發(fā)送中斷 //中斷代碼: void ComInt() interrupt 4 {        if(RI)  RI=0;                     //接收中斷略;               if(TI)                            //發(fā)送中斷處理        {               TI=0;                      //清標(biāo)志               num--;                     //計(jì)數(shù)減1               p++;                       //指針加1               if(num >0) SBUF=*p;        //數(shù)據(jù)繼續(xù)發(fā)送至全部發(fā)完        } } 

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



          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();