打印
[ZLG-ARM]

2138从掉电模式被唤醒后UART0异常的问题

[复制链接]
1368|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gooofy|  楼主 | 2008-10-24 09:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教个问题:

我使用LPC2138进入掉电模式,p0.14作为中断唤醒cpu,不产生中断

唤醒成功后开启所有外围设备。

问题是唤醒以后UART0发送异常。2138发送了一个0x26,电脑串口却接收到连续3个0x80

 

不知道还有什么地方没有注意到啊?

相关程序如下:

while(1)
 {
  PINSEL0 |= 0x20050005;   //P0.14开启中断1
 
  EXTWAKE = 0x02;     // 外部中断1唤醒芯片
  EXTINT  = 0x02;     // 清除EINT1中断标志
  
  IO0CLR |= whitelight;   //关闭背光
  delay(100);
  UART0_SendByte(0x23);
  PCONP = 0x00;     // 关闭定时器、RTC、UART等功能部件
  PCON  = 0x02;     // 系统进入掉电模式
  
  delay(100);
  PCONP = 0x001817BE;     // 开启定时器、RTC、UART等功能部件
  //PINSEL0 |= 0x20050005;
  //UART1_Init();                       // 串口初始化
  //UART0_Init();

  delay(100);
  UART0_SendByte(0x26);     //从这一次串口输出开始不正常

  ......
}

相关帖子

沙发
ZLG_Dengz| | 2008-10-24 19:32 | 只看该作者

和PLL有关

    掉电后,PLL会被关闭。 从掉电状态唤醒后,PLL并不会自动恢复,而是需要你重新初始化。
    掉电前,你的系统经过PLL倍频产生了系统时钟(SYSCLK),波特率也是在这个时钟的基础上得到的。
   而从掉电模式下唤醒后,PLL处于关闭状态,你的系统时钟不再是SYSCLK.使用你设定的分频值也将得不到你需要的波特率, 这可能就是导致你看到的乱码的原因。

使用特权

评论回复
板凳
gooofy|  楼主 | 2008-10-25 16:49 | 只看该作者

谢谢

谢谢~

使用特权

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

本版积分规则

2

主题

31

帖子

1

粉丝