这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 请大虾帮忙为什么我用串口接收的跟发送的字符不一样啊?

共2条 1/1 1 跳转至

请大虾帮忙为什么我用串口接收的跟发送的字符不一样啊?

院士
2006-09-17 18:14:16     打赏
请大虾帮忙为什么我用串口接收的跟发送的字符不一样啊?



关键词: 大虾     帮忙     为什么     我用     串口     接收     发送     字符         

院士
2006-12-22 22:43:00     打赏
2楼
问 我的S3C44B0的COM1驱动程序如下:

void Uart_Init(int mclk,int baud)
{
    int i;
    if(mclk==0)
    mclk=MCLK;   //MCLK我在option.h中设置的为32000000

    rUFCON0=0x0;     //FIFO disable
    rUMCON0=0x0;
//UART0
    rULCON0=0x3;     
    rUCON0=0x245;    
    rUBRDIV0=( (int)(mclk/16./baud + 0.5) -1 );


    for(i=0;i<100;i++);
}

void serial_putc (const  char c)
{
    while(!(rUTRSTAT0 & 0x02));
    if (c=='\n')
        serial_putc('\r');
    else{
        WrUTXH0(c);
        Delay(10);
         }
}


void Main(void)
{
    U16 m;
    int i;
    char c1;

    
    rSYSCFG=0x0e;    
    Port_Init();        //IO端口功能、方向设定

Uart_Init(0,115200);    
for(;;)
{        
    serial_putc('a');
}


但是终端上却显示的都是乱码,而不是应有的a,改动MCLK为60000000,40000000,24000000,30000000后调了很多次也是。
而且我的超级终端115200,8,n,1波特率与程序一致115200。

请问问题可能会出现在什么地方呢?会不会在rPCONE的初始化值上呢? 1: UART应跟MCLK的设置没有关系啊,但我每次改变MCLK,终端也变?

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]