1123367_zh-CN

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

1123367_zh-CN

1123367_zh-CN

FXLS8471Q - 加速度计运动检测功能示例代码

大家好,


如果您对演示加速度计运动检测功能使用的简单裸机示例代码感兴趣,请参阅下面我为FXLS8471Q 加速度计创建的一个示例,该示例与 NXP FRDM-KL25Z平台和FRDMSTBC-A8471配合使用 木板


FXLS8471Q 设置为检测 X 轴或 Y 轴上最短 40 毫秒内超过 315mg 的运动。一旦触发事件,INT1引脚上就会产生中断:


void FXLS8471Q_Init (void)
{
  FXLS8471Q_WriteRegister(FT_MT_THS_REG, 0x85); // Set threshold to 312.5mg (5 x 62.5mg )
  FXLS8471Q_WriteRegister(FF_MT_COUNT_REG, 0x02); // Set debounce timer period to 40ms
  FXLS8471Q_WriteRegister(FF_MT_CFG_REG, 0xD8); // Latch enabled, motion detection enabled for X and Y axis
  FXLS8471Q_WriteRegister(CTRL_REG4, 0x04); // Motion interrupt enabled
  FXLS8471Q_WriteRegister(CTRL_REG5, 0x04); // Route motion interrupt to INT1 - PTD4
              
  FXLS8471Q_WriteRegister(CTRL_REG1, 0x29); // ODR = 12.5Hz, Active mode
}‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍


在 ISR 中,仅清除中断标志并读取 FF_MT_SRC(0x16)寄存器,以清除 INT_SOURCE 寄存器中的 SRC_FFMT 标志并取消 INT1 引脚,如下面的屏幕截图所示。


void PORTD_IRQHandler()
{
  PORTD_PCR4 |= PORT_PCR_ISF_MASK; // Clear the interrupt flag 
  IntSource = FXLS8471Q_ReadRegister(FF_MT_SRC_REG); // Read the FF_MT_SRC register to clear the SRC_FFMT flag in the INT_SOURCE register      
  EventCounter++;
}‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

FXLS8471Q - Motion Interrupt.JPG



您可以在附件中找到完整的源代码。如果对这个简单的示例代码有任何疑问,请随时在下面提问。


此致,

Tomas

加速度传感器
Tags (1)
No ratings
Version history
Last update:
‎02-05-2026 03:44 AM
Updated by: