실습 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);
}
댓글