打印
[ZLG-ARM]

Disable PLL & MEM后配置UART0出错

[复制链接]
1807|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
arcueid|  楼主 | 2007-7-10 10:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
由于需要做了一个简单的串口,但是出现了以下问题

int main(void)
{
    MAMCR = 0;        /* Disable MEM */
    PLLCON = 0;        /* Disable PLL */
    PLLFEED = 0xAA;
    PLLFEED = 0x55;
    while((PLLSTAT & (3 << 8)) != 0); /* Wait for disable */
        
    uart_init(8, 'n', 1, 9600, Fosc);
    printf("Hello world\n");

    。。。。。。
}


开始pll分频成以下情况的时候
#define Fosc            11059200
#define Fcclk           (Fosc * 4)
#define Fcco            (Fcclk * 4)
#define Fpclk           (Fcclk / 4) * 4
串口可以打印Hello world

但是pll分频成以下情况的时候
#define Fosc            11059200
#define Fcclk           (Fosc * 4)
#define Fcco            (Fcclk * 4)
#define Fpclk           (Fcclk / 4) * 1
串口也有打印,但是一堆乱码

请问是什么原因,先谢谢了

相关帖子

沙发
zlgARM| | 2007-7-11 20:49 | 只看该作者

arcueid

    您好!
    显示乱码就表明接收出错了,这正说明双方没有正确通信。两个UART要能正确无误地通信,需要若干必要条件。
    两个UART要正确无误地通信,通讯参数上至少需要满足两个条件:
    1、波特率一致;
    2、帧格式一致。
    
    而波特率需要受外频时钟的影响,如果修改了外频时钟,而没有注意仍保持波特率不变,可能会导致必要条件不满足,使得通信出错。
    

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

13

帖子

1

粉丝