/** * @brief Checks whether the specified ADC interrupt has occurred or not. * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. * @param ADC_IT: specifies the ADC interrupt source to check. * This parameter can be one of the following values: * @arg ADC_IT_EOC: End of conversion interrupt mask * @arg ADC_IT_AWD: Analog watchdog interrupt mask * @arg ADC_IT_JEOC: End of injected conversion interrupt mask * @retval The new state of ADC_IT (SET or RESET). */ ITStatus ADC_GetITStatus(ADC_TypeDef* ADCx, uint16_t ADC_IT) { ITStatus bitstatus = RESET; uint32_t itmask = 0, enablestatus = 0; /* Check the parameters */ assert_param(IS_ADC_ALL_PERIPH(ADCx)); assert_param(IS_ADC_GET_IT(ADC_IT)); /* Get the ADC IT index */ itmask = ADC_IT >> 8; /* Get the ADC_IT enable bit status */ enablestatus = (ADCx->CR1 & (uint8_t)ADC_IT) ; /* Check the status of the specified ADC interrupt */ if (((ADCx->SR & itmask) != (uint32_t)RESET) && enablestatus) { /* ADC_IT is set */ bitstatus = SET; } else { /* ADC_IT is reset */ bitstatus = RESET; } /* Return the ADC_IT status */ return bitstatus; }
/** * @brief Checks whether the specified ADC interrupt has occurred or not. * @param ADCx: where x can be 1 to select the ADC1 peripheral * @param ADC_IT: specifies the ADC interrupt source to check. * This parameter can be one of the following values: * @arg ADC_IT_ADRDY: ADC ready interrupt * @arg ADC_IT_EOSMP: End of sampling interrupt * @arg ADC_IT_EOC: End of conversion interrupt * @arg ADC_IT_EOSEQ: End of sequence of conversion interrupt * @arg ADC_IT_OVR: overrun interrupt * @arg ADC_IT_AWD: Analog watchdog interrupt * @retval The new state of ADC_IT (SET or RESET). */ ITStatus ADC_GetITStatus(ADC_TypeDef* ADCx, uint32_t ADC_IT) { ITStatus bitstatus = RESET; uint32_t enablestatus = 0; /* Check the parameters */ assert_param(IS_ADC_ALL_PERIPH(ADCx)); assert_param(IS_ADC_GET_IT(ADC_IT)); /* Get the ADC_IT enable bit status */ enablestatus = (uint32_t)(ADCx->IER & ADC_IT); /* Check the status of the specified ADC interrupt */ if (((uint32_t)(ADCx->ISR & ADC_IT) != (uint32_t)RESET) && (enablestatus != (uint32_t)RESET)) { /* ADC_IT is set */ bitstatus = SET; } else { /* ADC_IT is reset */ bitstatus = RESET; } /* Return the ADC_IT status */ return bitstatus; }
/******************************************************************************* * 函数名称: ADC_GetITStatus * 功能描述: 检查指定ADC的中断是否发生. * 输入参数: (1)ADCx:其中x可以是1、2或3,用来选择ADC外围模块. * (2)ADC_IT:需要检查的ADC中断源. * 可以使用下述值的一个或者几个值的组合: * - ADC_IT_EOC: EOC中断屏蔽 * - ADC_IT_AWD: AWDOG中断屏蔽 * - ADC_IT_JEOC: JEOC中断屏蔽 * 输出参数: 无 * 返回参数: ADC_IT的新状态(SET或RESET). *******************************************************************************/ ITStatus ADC_GetITStatus(ADC_TypeDef* ADCx, u16 ADC_IT) { ITStatus bitstatus = RESET; u32 itmask = 0, enablestatus = 0; /* Check the parameters [检查参数] */ assert_param(IS_ADC_ALL_PERIPH(ADCx)); assert_param(IS_ADC_GET_IT(ADC_IT)); /* Get the ADC IT index [取得ADC中断号]*/ itmask = ADC_IT >> 8; /* Get the ADC_IT enable bit status [取得ADC中断允许标志位]*/ enablestatus = (ADCx->CR1 & (u8)ADC_IT) ; /* Check the status of the specified ADC interrupt [检查指定ADC中断标志位]*/ if (((ADCx->SR & itmask) != (u32)RESET) && enablestatus) { /* ADC_IT is set [置位ADC_IT]*/ bitstatus = SET; } else { /* ADC_IT is reset [复位ADC_IT]*/ bitstatus = RESET; } /* Return the ADC_IT status [返回ADC_IT状态]*/ return bitstatus; }
/** * @brief Checks whether the specified ADC interrupt has occurred or not. * @param ADCx: where x can be 1, 2 or 3 to select the ADC peripheral. * @param ADC_IT: specifies the ADC interrupt source to check. * This parameter can be one of the following values: * @arg ADC_IT_EOC: End of conversion interrupt mask * @arg ADC_IT_AWD: Analog watchdog interrupt mask * @retval : The new state of ADC_IT (SET or RESET). */ ITStatus ADC_GetITStatus(ADC_TypeDef* ADCx, uint16_t ADC_IT) { ITStatus bitstatus = RESET; /* Check the parameters */ assert_param(IS_ADC_ALL_PERIPH(ADCx)); assert_param(IS_ADC_GET_IT(ADC_IT)); /* Check the status of the specified ADC interrupt */ if (((ADCx->ADSTA & ADC_IT)) != (uint32_t)RESET) { /* ADC_IT is set */ bitstatus = SET; } else { /* ADC_IT is reset */ bitstatus = RESET; } /* Return the ADC_IT status */ return bitstatus; }