<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > ARM9硬件接口學(xué)習之UART

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

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

  2) 發(fā)送數據:

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

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

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

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

  b.UTXH0 ( channel 0 transmit buffer register ):

  把要發(fā)送的數據寫(xiě)入此寄存器。

3) 接收數據:

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

  b.URXH0 ( channel 0 receive buffer register ):

  當查詢(xún)到UTRSTAT0 位[0]=1時(shí),讀此寄存器獲得串口接收到的數據。

  4) 實(shí)驗源代碼

  /* main.c */

  #include "uart.h"

  #include "clock.h"

  #include "watchdog.h"

  int Main(void)

  {

  char key = ' ';

  clock_init(); //初始化時(shí)鐘

  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; //中斷或查詢(xún)方式

  UFCON0 = 0x00; //不使用FIFO

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

  UBRDIV0 = 27; //波特率為115200

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

  GPHUP = 0x0c; //GPH2,GPH3內部上拉

  }

  void uart_send(char * c)

  {

  for (; *c != '国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放

<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>