传感技术
直播中

哈哈哈

10年用户 876经验值
擅长:可编程逻辑 电源/新能源
私信 关注
[问答]

ADXL345中断清除不稳定怎么处理?

使用stm8l驱动adxl345做运动检测,设置运动中断使能,其他中断禁止,中断引脚映射为INT2,并使用此引脚触发stm8l的外部中断,ADXL345的初始化函数如下:
  adxl345_write_reg(0X31,0X0B);  //低电平中断输出,13位全分辨率,输出数据右对齐,16g量程
  adxl345_write_reg(0x2C,0x1A);  //数据输出速度为100Hz,低功耗模式
  adxl345_write_reg(0x2D,0x08);   //链接使能,测量模式,省电特性
  adxl345_write_reg(0X1E,0x00);   //X,Y,Z补偿值
  adxl345_write_reg(0X1F,0x00);
  adxl345_write_reg(0X20,0x05);
  adxl345_write_reg(0X24,0x10);   //活动检测阈值为1.0g=62.5mg*16
  adxl345_write_reg(0X27,0xF0);   //X、Y、Z轴检测运动,交流耦合
  adxl345_write_reg(0X2F,0x10);   //运动中断引脚为INT2,其他中断引脚INT1
  adxl345_write_reg(0X2E,0x10);  //使能运动中断
在stm8l的外部中断函数中通过读取ADXL345中断源寄存器的值清除中断标志
  source = adxl345_read_reg(0x30); //读ADXL345中断源寄存器,清中断标志位
但在测试的过程中,INT2的引脚电平有时不能被拉低,通过mcu的调试工具查看,此种异常状态时,ADXL345中断源寄存器读到的数据为0x93,此值正常。
故不知此种异常现象的原因,请各位帮忙分析分析,谢谢

更多回帖

发帖
×
20
完善资料,
赚取积分