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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機SH79F168串口調式

          單片機SH79F168串口調式

          作者: 時間:2016-11-25 來源:網絡 收藏
          最近在弄中穎最新出來的8bit單片機,開始的時候挺棘手的,網上沒有那些主流芯片那么多資料,一個小問題沒有弄清楚都要調式很久才能搞明白,最慘的在焊接電源的時候還讓我燒了片,弄得我四處找新片子,幸好今天樣片來了,燒之前沒有調通的串口終于調通了,就把程序發(fā)出來,讓像我一樣的新手別像無頭蒼蠅一樣到處亂撞,呵呵……

          需要注意的地方:

          本文引用地址:http://www.ex-cimer.com/article/201611/321516.htm

          (1)將接受和發(fā)送端口設置為輸入,同時設置為輸入,只將接受端口設置為輸入都也不行;

          (2)波特率的計算跟51單片機不相同,可以仔細看數據手冊怎么計算的;

          (3)RI與TI共用一個中斷,需要由標志去區(qū)分(這里跟PIC的中斷有點類似了)。

          程序不周到的地方還望各位見諒,有什么建議盡管提。

          void init_uart()

          {

          P3CR &= 0xF9 ; //這個需要將端口設置為輸入,不然有可能會產生亂碼

          TMOD |= 0x20 ; //TMOD: timer 1, mode 2, 8-bit reload

          TH1 = 0x94 ; //Baud:9600 fosc=16.6MHz

          TL1 = 0x94 ;

          SCON = 0x50 ; //SCON: serail mode 1, 8-bit UART, enable ucvr

          PCON = 0x80 ; //SMOD=1;

          IEN0 |= 0x90 ; //Enable Serial Interrupt,EA=1,ES=1;

          TR1 = 1 ; // timer 1 run

          //TI = 1;

          }

          //向串口發(fā)送一個字符

          void send_char_com( uint8 ch)

          {

          SBUF = ch;

          while (!TI);

          TI = 0 ;

          }

          //向串口發(fā)送一個字符串,strlen為該字符串長度

          void send_string_com( unsigned char *str, unsigned int strlen)

          {

          unsigned int k= 0 ;

          do { send_char_com(*(str + k)); k++; }

          while (k < strlen);

          }

          //接受串口發(fā)送過來的數據,并再次發(fā)給串口

          void RX_ISR() interrupt 4

          {

          if(RI&&ES)

          {

          send_char_com(SBUF);

          RI=0;

          }

          }



          評論


          技術專區(qū)

          關閉
          看屁屁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); })();