我在做与pc的串口通信的时候(我用的是LPC21xx),在超级终端上显示的全是乱码,调了好几天也没能解决。下面的实验代码,是我根据一个正确的实验代码简化的,有没有高手帮我看一下,哪里出错了?先行谢过
main.cint main(void)
{
UINT32 i;
Uart_Init(115200);
while(1)
{
printf("my name is liugang ,yes you are right %d\n");
for(i=0;i<0xfffff;i++);
}
}
uart.c
UINT32 Uart_Init(UINT32 baud)
{
UINT32 bak;
PINSEL0=0x00050000;
if((baud==0)||(baud>115200)) return 0;
U1LCR=0x83;
bak=(Fpclk>>4)/baud;
U1DLM=bak>>8;
U1DLL=bak&0xff;
U1LCR=0x03;
return 1;
}
int SendChar(int ch)
{
if(ch=='\n')
{
while(!(U1LSR & 0x20));
U1THR=0x0d;
}
while(!(U1LSR & 0x20));
return(U1THR=ch);
} |