как настроить прерывание, основанное на трехходовой связи в LPS25HB - PullRequest
1 голос
/ 02 марта 2020

Я пытаюсь сгенерировать событие прерывания на основе определенного порога, чтобы вывести mcu из режима остановки.

Вот моя функция для включения этой функции

    void  LPS25_interrupt_Config(){

    Conf_reg1 |=  (LPS25HB_CTRL_REG1_PD | LPS25HB_CTRL_REG1_ODR_25HZ);
    HAL_I2C_Mem_Write(&hi2c1,LPS25HB_ADDRESS_WRITE,LPS25HB_CTRL_REG1,1,&Conf_reg1,1,0xff);

    Conf_reg2 = (LPS25HB_CTRL_REG2_AUTOZERO);
    HAL_I2C_Mem_Write(&hi2c1,LPS25HB_ADDRESS_WRITE,LPS25HB_CTRL_REG2,1,&Conf_reg2,1,0xff);

    Conf_reg3=(LPS25HB_CTRL_REG3_INT_S_Pressure_LH );
    HAL_I2C_Mem_Write(&hi2c1,LPS25HB_ADDRESS_WRITE,LPS25HB_CTRL_REG3,1,&Conf_reg3,1,0xff);

    Interrupt_conf= (LPS25HB_INTERRUPT_CFG_LIR );
    HAL_I2C_Mem_Write(&hi2c1,LPS25HB_ADDRESS_WRITE,LPS25HB_INTERRUPT_CFG,1,&Interrupt_conf,1,0xff);
   HAL_I2C_Mem_Write(&hi2c1,LPS25HB_ADDRESS_WRITE,LPS25HB_THS_P_L,1,&Threshold_L,1,0xff);
    HAL_I2C_Mem_Write(&hi2c1,LPS25HB_ADDRESS_WRITE,LPS25HB_THS_P_H,1,&Threshold_H,1,0xff);
    HAL_I2C_Mem_Read(&hi2c1,LPS25HB_ADDRESS_READ,LPS25HB_INTERRUPT_CFG,1,&Interrupt_conf,1,0xff);
    Interrupt_conf|=(LPS25HB_INTERRUPT_CFG_PL_E | LPS25HB_INTERRUPT_CFG_PH_E);
    HAL_I2C_Mem_Write(&hi2c1,LPS25HB_ADDRESS_WRITE,LPS25HB_INTERRUPT_CFG,1,&Interrupt_conf,1,0xff);
    HAL_I2C_Mem_Read(&hi2c1,LPS25HB_ADDRESS_READ,LPS25HB_CTRL_REG1,1,&Conf_reg1,1,0xff);
    Conf_reg1 |= (LPS25HB_CTRL_REG1_DIF_E );
    HAL_I2C_Mem_Write(&hi2c1,LPS25HB_ADDRESS_WRITE,LPS25HB_CTRL_REG1,1,&Conf_reg1,1,0xff);
}

I ' я проверяю регистр источника прерываний, чтобы проверить, было ли сгенерировано прерывание, но я ничего не получаю.

Любые мысли или предложения о том, что я могу делать неправильно или неправильно настроен?

спасибо!

...