确保你在 STM32 的中断服务函数中编写了正确的代码来处理 ADXL345 的中断。在中断服务函数中,你应该立即读取 ADXL345 的数据,而不是在主程序中读取。
下载贤集网APP入驻自媒体
贤集的各位铁铁,请教ADXL345检测数据始终进不去EXTI中断的原因? 我启用STM32的EXti,选择PB6管脚做外部中断线路。设置为输入线路上升沿中断请求。PB6用杜邦线连到ADXL345的INT1 pin。 ADXL345初始化配置: 1.写0x31寄存器:量程±2g(右对齐)(256=1g) 2.写0x2d寄存器:保证为测量模式 3.写0x2f寄存器:DATA READY中断映射到INT 1 pin,其他全部屏蔽 4.写0x2e寄存器:DATA READY中断使能,其他中断全部失能 在配置0x31寄存器时,INT_INVERT BIT我设为0,表示让中断激活高电平(set the interrupts to active high) 我的原意是每当ADXL345检测到新数据时,中断立即DATA READY,然后激活高电平,使EXTI管脚PB6检测到高电平。然后进入EXTI中断函数,在函数里面马上读取DATA(比如Z轴数据)。然后在主程序把数据显示出来(比如用LCD)。 但是测试结果我始终进不了EXTI中断。到底哪里错了?是不是ADXL345设置中断时候,哪里错了?请高人指示!