最近在做飞思卡尔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;
}
|