본문 바로가기
dev, tech/embedded

<img src="http://blogimgs.naver.com/nblog/ico_scrap01.gif" class="i_scrap" width="50" height="15" alt="본문스크랩" /> 실습

by 구띵 2006. 7. 13.

실습 4. UART 제어

목적: S3C2410 칩 내의 UART를 제어하여 호스트 PC를 통해 메시지를 출력하도록 한다.


방법:
 1. 먼저 완성된 실행 파일을 실행 시켜본다. (실행 전에 터미널 프로그램을 띄운다.)
 2. source 폴더안에 있는 uart.c 파일내에 Uart_Init() 함수의 제어 레지스터를 문제와
    같이 셋팅한다.
 

실험확인: UART가 정확히 셋팅이 되면 터미널 프로그램을 통해 Uart_Print() 함수의 메시지를 확인할 수 있다. 

 

 

void Uart_Init(void)
{
 int i = 1000;
 
 rUFCON1 = 0x0;// FIFO mode : 0x1
 rUMCON1 = 0x0;
 rULCON1 = 0x3;
 rUCON1 = 0x245;
 rUBRDIV1 = (int)(PCLK/(115200*16))-1;
 
 while(i--);
  
 
 
}


void Uart_SendByte(int data)  // Non - FIFO Mode
{
 if (data =='\n')
 {
  while(!(rUTRSTAT1 & (1<<2)));// non-FIFO mode

              // while(rUFSTAT1 & (1<<14));     FIFO mode

 


  WrUTXH1('\r');// 모든 터니널에서 인식을 위함
 }else {
 
  
 while(!(rUTRSTAT1 & (1<<2)))
 ;//1이 아닐때 까지 기다림
 WrUTXH1(data);// 매크로된 것을 이용
 }
  
}              

 

 

 

 

 
char Uart_Getch(void)
{
  char key;
  while(!(rUTRSTAT1 & 0x1));
  key = RdURXH1();
  WrUTXH1(key);
 
 
}

댓글