ST意法半导体
直播中

廉鼎琮

7年用户 968经验值
私信 关注
[问答]

请问lis2dw12_pin_int1_route_get和_set有什么区别?

我正在查看这个存储库,以便稍微使用 lis2dw12 加速度计。
尝试使用 Activity 示例,我得到了预期的结果,但对检测到中断引脚的路由有点困惑。从第 185 行开始,它执行以下操作:
  •   /* Enable activity detection interrupt */
  •   lis2dw12_pin_int1_route_get(&dev_ctx, &int_route.ctrl4_int1_pad_ctrl);
  •   int_route.ctrl4_int1_pad_ctrl.int1_wu = PROPERTY_ENABLE;
  •   lis2dw12_pin_int1_route_set(&dev_ctx, &int_route.ctrl4_int1_pad_ctrl);
“lis2dw12_pin_int1_route_get”和“lis2dw12_pin_int1_route_set”有什么区别。在我的理解中,这部分代码只是将唤醒位路由到 Ctrl4_Int1_pad_ctrl,但是“route_get”命令在做什么?
查看函数内部它只读取寄存器的当前状态,这有什么特别的原因吗?
  • int32_t lis2dw12_pin_int1_route_get(stmdev_ctx_t *ctx,
  •                                     lis2dw12_ctrl4_int1_pad_ctrl_t *val)
  • {
  •   int32_t ret;
  •   ret = lis2dw12_read_reg(ctx, LIS2DW12_CTRL4_INT1_PAD_CTRL,
  •                           (uint8_t*) val, 1);
  •   return ret;
  • }

回帖(1)

何秀珍

2023-1-4 16:08:27
lis2dw12_pin_int1_route_get是一个“get”函数,所以基本上它什么都不配置,但返回 LIS2DW12_CTRL4_INT1_PAD_CTRL 寄存器值的配置。
当您在更复杂的代码中插入您的函数时,这可能很有用,该代码多次使用中断并且需要存储或只需要知道中断标志的先前值。
通常控制中断的“先前”状态是有用的,在运行其余代码之前,了解中断是否已经上升,避免假阳性/阴性标志的风险。
但如果你不需要它,你可以注释该功能。
举报

更多回帖

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