本人初学ARM,还处于ADS中练手阶段。S3C2410简单的UART0实现自收发功能,但总是漏数据,不知原因,请教大神。源代码如下:
#include"2410addr.h"
void GPIOinit()
{
rGPHCON|=0xa0;
rGPHUP=0x0c;
}
void clkinit()
{
rLOCKtiME=0x00ffffff;
rMPLLCON=0x0;//FCLK=Fin*4
rCLKDIVN=0x0;//FCLK=HCLK=PCLK
}
void uartinit()
{
rULCON0=0x03;
rUCON0=0x05;
rUFCON0=0x00;
rUMCON0=0x00;
rUBRDIV0=25;//PCLK/(boudrate*16)-1
}
void Main()
{
unsigned char date=0;
GPIOinit();
clkinit();
uartinit();
while(1)
{
while(!(rUTRSTAT0 & (0x01)));//是否有数据
date=rURXH0;
while(!(rUTRSTAT0&0x02));//发送是否为空
rUTXH0=date;
}
}
更多回帖