MCU:hdsc32l17x
外设:lis3dh
问题:正常模式下,中断可进,数据可读。进入深度睡眠模式,中断可进,但是数据读不出(进入深度睡眠的函数是官方的库函数),
非常疑惑,希望大家帮我看看是什么问题。先写过各位了!
以下为代码:
int main(void)
{
App_LIS3DHIOCfg(); //模拟SPI端口设置
Lis3dh_Init(); //LIS3DH寄存器初始化设置
Lpm_GotoDeepSleep(TRUE); //进入深度睡眠模式
while(1)
{
if(Int_Status.Lis3dh_Int == 1)
{
Gpio_SetIO(GpioPortB,GpioPin0);//示波器看波形,便于低功耗调试
Int_Status.Lis3dh_Int = 0;
for(i=0;i<32;i++)
{
Get_Fifo_Data(&result[i]);
}
Gpio_ClrIO(GpioPortB,GpioPin0);
}
}
}
void PORTA_IRQHandler(void)
{
if(TRUE == Gpio_GetIrqStatus(GpioPortA,GpioPin8))
{
Gpio_SetIO(GpioPortB,GpioPin11);
Int_Status.Lis3dh_Int = 1;
LIS3DH_WriteReg(LIS3DH_FIFO_CTRL_REG,0x00);//清除FIFO数据
LIS3DH_WriteReg(LIS3DH_FIFO_CTRL_REG,0x40);//FIFO设置
Gpio_ClearIrq(GpioPortA,GpioPin8);
Gpio_ClrIO(GpioPortB,GpioPin11);
}
}
|