在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM9硬件接口學(xué)習(xí)之UART

            ARM9硬件接口學(xué)習(xí)之UART

            作者: 時間:2013-01-04 來源:網(wǎng)絡(luò) 收藏

              2) 發(fā)送數(shù)據(jù):

              a.UTRSTAT0 ( channel 0 Tx/Rx status register ):

              位[2]:無數(shù)據(jù)發(fā)送時,自動設(shè)為1。當(dāng)我們要使用串口發(fā)送數(shù)據(jù)時,先讀此位以判斷是否有數(shù)據(jù)正在占用發(fā)送口。

              位[1]:發(fā)送FIFO是否為空,本實(shí)驗(yàn)未用此位

              位[0]:接收緩沖區(qū)是否有數(shù)據(jù),若有,此位設(shè)為1。本實(shí)驗(yàn)中,需要不斷查詢此位一判斷是否有數(shù)據(jù)已經(jīng)被接收。

              b.UTXH0 ( channel 0 transmit buffer register ):

              把要發(fā)送的數(shù)據(jù)寫入此寄存器。

            3) 接收數(shù)據(jù):

              a.UTRSTAT0:如上描述,我們用到位[0]

              b.URXH0 ( channel 0 receive buffer register ):

              當(dāng)查詢到UTRSTAT0 位[0]=1時,讀此寄存器獲得串口接收到的數(shù)據(jù)。

              4) 實(shí)驗(yàn)源代碼

              /* main.c */

              #include "uart.h"

              #include "clock.h"

              #include "watchdog.h"

              int Main(void)

              {

              char key = ' ';

              clock_init(); //初始化時鐘

              uart_init(); //初始化串口

              close_watchdog();

              uart_send("uart communication success!");

              while(1)

              {

              uart_send("If you want to quit ,please pess 'e'");

              key = uart_get();

              if (key == 'e')

              {

              uart_send ("you pressed 'e' and you'll quit!");

              break;

              }

              else

              {

              uart_send("you pressed ");

              uart_send(key);

              uart_send(",retry!");

              }

              }

              uart_send("the program exited by user!");

              return 0;

              }

              下面是串口相關(guān)部分源碼:

              void uart_init(void)

              {

              ULCON0 = 0x03; //8N1

              UCON0 = 0x005; //中斷或查詢方式

              UFCON0 = 0x00; //不使用FIFO

              UMCON0 = 0x00; //不使用流控

              UBRDIV0 = 27; //波特率為115200

              GPHCON |= 0xa0; //GPH2,GPH3 set as TXD0,RXD0

              GPHUP = 0x0c; //GPH2,GPH3內(nèi)部上拉

              }

              void uart_send(char * c)

              {

              for (; *c != '