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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51學(xué)習(xí)之串口發(fā)送

          51學(xué)習(xí)之串口發(fā)送

          作者: 時間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
          先是自己根據(jù)PPT學(xué)習(xí)資料配置了下串口,試圖向上位機(jī)發(fā)送字母c.下了不能工作,找資料看發(fā)現(xiàn)少配置了SCON寄存器,再試,還不行,收到的是亂碼。又看了看人家的發(fā)現(xiàn)是配置的參數(shù)不正確,就是波特率不對。抄人家的數(shù)上來,還不行。郁悶了。
          然后周末搬家,收東西,也沒顧上調(diào)。這周單位忙TBKZQ的事情,晚上回來晚,也不說調(diào)了。想想這2天晚上回來沒干啥事,有點(diǎn)空虛,決定再調(diào)調(diào)串口。
          還是上回的程序,收到的東西很怪。并且有時候還會出現(xiàn)就是我關(guān)串口,或是電路板斷電,小助手還源源不斷的收數(shù)據(jù),最后死機(jī)了。(我猜測這種情況是因?yàn)榇谝恢辈煌0l(fā),數(shù)據(jù)間也沒延時,最后串口處理不過來,會亂碼,會死機(jī)。)換個字發(fā),還是不行,但偶爾也會正常,再下程序,OK了。
          elay()
          { int i,j;
          for(i=0;i<7000;i++)
          {
          for(j=0;j<3;j++);
          }
          }

          Uart_int()
          { SCON=0x50;
          TMOD=0x20;
          TH1 =0xfd;
          TL1 =0xfd;

          TR1 =1;
          }

          void Main()
          {
          Uart_int();
          while(1)
          {
          SBUF=c;
          Delay();
          SBUF=s;
          Delay();
          SBUF= ;
          Delay();
          }
          }
          哎,不管怎樣,先弄個正確的,也好有點(diǎn)信心往下進(jìn)行。至于復(fù)雜點(diǎn)的,調(diào)用函數(shù)發(fā)字符啥的,回頭再弄吧。
          總結(jié)下串口發(fā)送吧!
          1. 串口發(fā)送可以不理發(fā)送中斷,所以不用配置中斷。但要查詢中斷,肯定要開中斷才行了。
          2. 波特率一定要配置對,不然收到的肯定不是你想要的數(shù)據(jù)了。
          3. 發(fā)數(shù)據(jù)要注意延時,要不會死機(jī)的。
          4. 有空還是要好好學(xué)學(xué)相關(guān)的理論?。”热绮ㄌ芈食踔档挠嬎闵兜?。


          評論


          技術(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); })();