文件使用的是AN3393指导wake-up例程,但是一直没有检测到中断输出。
驱动使用的是官方给的库文件。具体代码如下:
//***********************************************************************************
LIS3DSH_ACC_SetIntEnaSM(0,LIS3DSH_ACC_SM1,LIS3DSH_ACC_MEMS_ENABLE);
LIS3DSH_ACC_SetIntPinSM(0,LIS3DSH_ACC_SM1,LIS3DSH_ACC_MEMS_DISABLE);
LIS3DSH_ACC_IntSignPol(0,LIS3DSH_ACC_POL_HIGH);//中断高电平
LIS3DSH_ACC_IntLatchEnable(0,LIS3DSH_ACC_MEMS_ENABLE);//中断不锁存
LIS3DSH_ACC_SetODR(0, LIS3DSH_ACC_ODR_100Hz);
LIS3DSH_ACC_SetAxis(0, LIS3DSH_ACC_X_ENABLE | LIS3DSH_ACC_Y_ENABLE | LIS3DSH_ACC_Z_ENABLE);
LIS3DSH_ACC_SetFullScale(0, LIS3DSH_ACC_FULLSCALE_16);
LIS3DSH_ACC_SetThrsSM(0,LIS3DSH_ACC_SM1,LIS3DSH_ACC_THRS_1,0x55);
LIS3DSH_ACC_SetSMCodeReg(0,LIS3DSH_ACC_ST1_1,0x05);
LIS3DSH_ACC_SetSMCodeReg(0,LIS3DSH_ACC_ST1_1,0x11);
LIS3DSH_ACC_SetMaskSM(0,LIS3DSH_ACC_SM1,LIS3DSH_ACC_MASK_B,0xfc);
LIS3DSH_ACC_SetMaskSM(0,LIS3DSH_ACC_SM1,LIS3DSH_ACC_MASK_A,0xfc);
LIS3DSH_ACC_SetRTamSM(0,LIS3DSH_ACC_SM1,LIS3DSH_ACC_MEMS_ENABLE);
//***********************************************************************************
按照这个初始化后,主程序不断读取三轴数据,都显示正常。但是晃动的话,中断引脚并没有检测到中断信号。
(我理解的wake-up应该是三轴加速度任意一个超过门限值,都会引起中断,不知道是不是这样理解。)
请教一下大家有用过这个加速度传感器的朋友,有能指导一下的吗?谢谢。
|