1、设置数据位宽。
找到GPHCON地址
设置GPH0,GPH1为特殊功能引脚RXD,TXD
找到ULCON0地址
设置串口的数据模式,8N1模式。即数据宽度8,停止位1。无奇偶校验。
2、设置停止位
找到UCON0地址
设置UART时钟为PCLK,禁止中断,使能发送,接收
3、校验位
4、模式配置
找到UFCON0
W
使能FIFO
无流控
5、波特率配置
void uart_init(void)
{
/设置GPH0和GPH1为特殊功能引脚RXD,TXD
GPHCON = 0Xa;
//设置串口数据模式,8N1模式
ULCON0 = 0X03;
//设置uart时钟为PCLK,禁止中断,使能发送,接收
UCON0 = 0X05;
//使能FIFO
UFCON0 = 0X01;
//无流控
UMCON0 = 0X0;
//波特率115200
UBRDIV0 = 0X23;
UDIVSLOT0 = 0X111;
}
void putchar(unsigned char c)
{
while(UFSTAT0 & (1 << 14));//若TX FIFO满,则等待
UTXH0 = c;
}
unsigned char getchar(void)
{
while((UFSTAT0 & 0X7F) == 0);//若RX FIFO空,则等待
return URXH0;
}