1.串口的初始化(寄存器设置)
a.根据原理图确定串口的输入输出引脚与s3c2440芯片的引脚的连接
b.初始化引脚为串口TXD/RXD,根据时序图确定开始时TXD/RXD引脚为高电平,拉低之后串口开始读写数据
c.设置波特率
d.设置数据格式
e.设置时钟源
void uart0_init(void)
{
GPHCON |= 0xa0; // GPH2,GPH3用作TXD0,RXD0
GPHUP = 0x0c; // GPH2,GPH3内部上拉
ULCON0 = 0x03; // 8N1(8个数据位,无较验,1个停止位)
UCON0 = 0x05; // 查询方式,UART时钟源为PCLK
UFCON0 = 0x00; // 不使用FIFO
UMCON0 = 0x00; // 不使用流控
UBRDIV0 = 26; // 波特率为115200
}
2.数据的读写函数
void putc(int c)
{
/* UTRSTAT0[2]*/
while(!( UTRSTAT0 & (1<<2))); //UTRSTAT0[2]为1时代表数据发送完毕,为0则一直等待,直至大宋完成。
/* UTXH0*/
UTXH0 =(unsigned char) c; //将要发送的一字节的数据传给UTXH0即可。
}
int getc(void)
{
/* UTRSTAT0[0]*/
while(!( UTRSTAT0 & (1<<0)));
/* URXH0*/
return URXH0;
}
void puts(const unsigned char *s)
{
while(*s)
{
putc(*s);
s++;
}
}