|
利用x-cube-mems 驱动时,IIS2DLPC的驱动中我想要设置FIFO阈值中断,然后调用函数iis2dlpc_pin_int1_route_set进行设置。 val1_1.int1_fth=1; iis2dlpc_pin_int2_route_set(&dev->Ctx,&val1_2); HAL_Delay(20); iis2dlpc_pin_int1_route_set(&dev->Ctx,&val1_1); HAL_Delay(20); aa= iis2dlpc_pin_int1_route_get(&dev->Ctx,&vvvval); HAL_Delay(20); 再这个函数内部: int32_t iis2dlpc_pin_int1_route_set(const stmdev_ctx_t *ctx,
{ iis2dlpc_ctrl5_int2_pad_ctrl_t ctrl5_int2_pad_ctrl; iis2dlpc_ctrl7_t reg; int32_t ret; ret = iis2dlpc_read_reg(ctx, IIS2DLPC_CTRL5_INT2_PAD_CTRL,
if (ret == 0) { ret = iis2dlpc_read_reg(ctx, IIS2DLPC_CTRL7, (uint8_t *) ®, 1); } if (ret == 0) { if ((ctrl5_int2_pad_ctrl.int2_sleep_state
{ reg.interrupts_enable = PROPERTY_ENABLE; } else { reg.interrupts_enable = PROPERTY_DISABLE; } ret = iis2dlpc_write_reg(ctx, IIS2DLPC_CTRL4_INT1_PAD_CTRL,
} if (ret == 0) { ret = iis2dlpc_write_reg(ctx, IIS2DLPC_CTRL7, (uint8_t *) ®, 1); } else { ret = ret; } return ret; } 由于前置条件的原因,一致触发reg.interrupts_enable = PROPERTY_DISABLE;。所以导致中断不使能。难道设置fifo阈值中断,还需要同步设置前面的几个中断吗? 然后另外一个问题,再iis3dwb的驱动中: int32_t iis3dwb_xl_data_rate_set(const stmdev_ctx_t *ctx,
{ iis3dwb_ctrl1_xl_t ctrl1_xl; int32_t ret = iis3dwb_read_reg(ctx, IIS3DWB_CTRL1_XL, (uint8_t *)&ctrl1_xl, 1); if (ret == 0) { ctrl1_xl.xl_en = (uint8_t)val; ret = iis3dwb_write_reg(ctx, IIS3DWB_CTRL1_XL,
} return ret; }** 这个函数按道理是设置输出速度的,为什么最后变成了写入xl_en了。
|
微信公众号
手机版