您的位置:首页 > 其它

S3C 2440 Uart (miniarm 2440 )

2010-01-05 23:11 323 查看
#ifndef UART_H
#define UART_H

#include "2440addr.h"

void UartInit(u32 baud);
void UartSendChar(u8 c);
void UartSendStr(char *str);
char UartGetChar(void);
void UartPrintf(char *fmt,...);

#endif


uart.c

#include "uart.h"

void UartInit(u32 baud)
{
rUBRDIV0 = (int)(PCLK/baud/16.0)-1;
// rULCON0:
//bit7   Reserved
//bit6   Infrared Mode
//       0 = Normal
//       1 = Infrared
//bit5:3 Parity Mode
//    	 0xx = No Parity
//       100 = ODD Parity
//       101 = EVEN Parity
//       110 = Parity Forced / Checked as 1
//       111 = Parity Forced / Checked as 0
//bit2   number Of Stop bit
//       0 = one stop bit per frame
//       1 = two stop bit per frame
//bit1:0 Word Length
//       00 = 5bits  01 = 6bits
//       10 = 7bits  11 = 8bits
rULCON0  = 0x03;
rUCON0   = 0x245;
}
void UartSendChar(u8 c)
{
while(! (rUTRSTAT0 &0x02));
rUTXH0 = c;

}
void UartSendStr(char *str)
{
while(*str !='/0')
UartSendChar(*str++);
}
char UartGetChar(void)
{
while(!(rUTRSTAT0 & 0x01));
return rURXH0;

}
void UartPrintf(char *fmt,...)
{
va_list ap;
char string[256];

va_start(ap,fmt);
vsprintf(string,fmt,ap);
UartSendStr(string);
va_end(ap);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: