[Kinetis] kl02低功耗唤不醒问题

[复制链接]
 楼主| 冰轻舞 发表于 2015-12-23 15:19 | 显示全部楼层 |阅读模式
最近在做飞思卡尔KL02的低功耗问题。
使用KL02_LOWPOWER_DEMO例程,准备使用使用UART0的中断唤醒,
做如下修改后无法从VLPS模式唤醒,不知道为什么,哪位大神解答一下:
       1、在sysinit.c中加入了 #define NO_PLL_INIT  板子无外部晶振,只能使用内部晶振
       2、将例程中选择进入低功耗模式修改为:
    while(haha!='7');
    receivedchar = '7';
    if(receivedchar >= '1' && receivedchar <= '9')
      ReceivedMode = receivedchar - 0x30;
    if(receivedchar >= 'A' && receivedchar <= 'B') // A:0x41(65)
      ReceivedMode = receivedchar - 0x37;
    if(receivedchar >= 'a' && receivedchar <= 'b') // a:0x65(97)
      ReceivedMode = receivedchar - 0x57;   
    printf("%d",ReceivedMode);
    说明:haha是一个全局变量,在串口中断中会赋值,若不赋值,程序直接阻塞,等待串口输入‘7’ 进入VLPS模式
      3、将主函数中的 InitRGB();注解掉
      4、在printf("\n\n\nRunning KL02 sample project.\n\n");
      后加入串口中断的配置
     UART0_C2|=UART0_C2_RIE_MASK;
        enable_irq (INT_UART0-16);
       5、main.c最后加入了 串口中断
       void UART0_IRQHandler()
       {
             haha=UART0_BASE_PTR->D;
        }

 楼主| 冰轻舞 发表于 2015-12-24 08:25 | 显示全部楼层
NXP_TICS_Jeremy 发表于 2015-12-24 09:59 | 显示全部楼层
UART0的时钟源你选择是是什么,你要确保你选择的时钟在VLPS模式下也是enable的
 楼主| 冰轻舞 发表于 2015-12-25 11:17 | 显示全部楼层
NXP_TICS_Jeremy 发表于 2015-12-24 09:59
UART0的时钟源你选择是是什么,你要确保你选择的时钟在VLPS模式下也是enable的 ...

选择的应该是MCGOUTCLK 这个时钟是PLL过来了
NXP_TICS_Jeremy 发表于 2015-12-25 15:36 | 显示全部楼层
冰轻舞 发表于 2015-12-25 11:17
选择的应该是MCGOUTCLK 这个时钟是PLL过来了

选择OSCERCLK,并且要配置程它在VLPS模式也是enable的。
2015-12-25_15-22-15.jpg
 楼主| 冰轻舞 发表于 2015-12-27 19:23 | 显示全部楼层
谢谢你的回复
我的板子上没有外部时钟,只能使用内部时钟
大苏牙 发表于 2015-12-27 20:20 | 显示全部楼层
用的串口中断唤醒吗?
 楼主| 冰轻舞 发表于 2015-12-28 14:46 | 显示全部楼层
大苏牙 发表于 2015-12-27 20:20
用的串口中断唤醒吗?

是的   想用中断唤醒
 楼主| 冰轻舞 发表于 2015-12-31 09:17 | 显示全部楼层
NXP_TICS_Jeremy 发表于 2015-12-25 15:36
选择OSCERCLK,并且要配置程它在VLPS模式也是enable的。


谢谢你的回复
我的板子上没有外部时钟,只能使用内部时钟
NXP_TICS_Robin 发表于 2015-12-31 11:20 | 显示全部楼层
冰轻舞 发表于 2015-12-31 09:17
谢谢你的回复
我的板子上没有外部时钟,只能使用内部时钟

如果你用MCGIRCLK也需要将对应的内部时钟开启 VLPS MCG IRC.jpg

21.4.3.1 MCG Internal Reference Clock.jpg
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

25

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部