本帖最后由 panic_pan 于 2015-3-18 18:28 编辑
大家好!最近在调试一块控制板,芯片是MKE04Z8VWJ4,使用KBI1_P5(PTC3),UART0(PTA2,PTA3),使用内部晶振,使用...\KEXX_DRIVERS_V1.2.1_DEVD\kexx_drv_lib\build\iar\ke04\KBI_demo例程上修改。主要调试进入低功耗(STOP)和通过KBI或者UART0边沿触发唤醒功能。现在的问题是:
KBI1功能正常,能进入中断,UART0通信正常,能中断收发。当我进入STOP模式的时候,实测功耗降低了,说明已经进入stop模式,但是当我通过KBI唤醒的时候,没有唤醒,同样通过UART0边沿也无法唤醒。查找了手册,也没有发现什么问题,请大神帮忙解惑,谢谢!下面是部分代码:
KBI1_P5初始化:
/* Disable all the KBI pins */
for (i = 0; i < KBI_MAX_PINS_PER_PORT; i++)
{
sKBIConfig.sPin.bEn = 0;
}
sKBIConfig.sBits.bMode = KBI_MODE_EDGE_ONLY;
sKBIConfig.sPin[5].bEdge = KBI_FALLING_EDGE_LOW_LEVEL; //KBI1_P5
sKBIConfig.sBits.bIntEn = 1;
sKBIConfig.sPin[5].bEn = 1; //KBI1_P5
KBI_Init(KBI1, &sKBIConfig);
进入stop模式前后UART0配置:
UART0->C2 |= UART_C2_RIE_MASK;
UART0->BDH |= UART_BDH_RXEDGIE_MASK;
NVIC_EnableIRQ(UART0_IRQn); //enter stop mode
ICS->C1 &= ~ICS_C1_IREFSTEN_MASK;
PMC_SetMode(&sPMC,PmcModeStop4);
UART0->BDH &= ~UART_BDH_RXEDGIE_MASK;
|