Lines Matching refs:hadc

269 static void ADC_Init(ADC_HandleTypeDef *hadc);
311 HAL_StatusTypeDef HAL_ADC_Init(ADC_HandleTypeDef *hadc) in HAL_ADC_Init() argument
316 if (hadc == NULL) in HAL_ADC_Init()
322 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_Init()
323 assert_param(IS_ADC_CLOCKPRESCALER(hadc->Init.ClockPrescaler)); in HAL_ADC_Init()
324 assert_param(IS_ADC_RESOLUTION(hadc->Init.Resolution)); in HAL_ADC_Init()
325 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ScanConvMode)); in HAL_ADC_Init()
326 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode)); in HAL_ADC_Init()
327 assert_param(IS_ADC_EXT_TRIG(hadc->Init.ExternalTrigConv)); in HAL_ADC_Init()
328 assert_param(IS_ADC_DATA_ALIGN(hadc->Init.DataAlign)); in HAL_ADC_Init()
329 assert_param(IS_ADC_REGULAR_LENGTH(hadc->Init.NbrOfConversion)); in HAL_ADC_Init()
330 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.DMAContinuousRequests)); in HAL_ADC_Init()
331 assert_param(IS_ADC_EOCSelection(hadc->Init.EOCSelection)); in HAL_ADC_Init()
332 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.DiscontinuousConvMode)); in HAL_ADC_Init()
334 if (hadc->Init.ExternalTrigConv != ADC_SOFTWARE_START) in HAL_ADC_Init()
336 assert_param(IS_ADC_EXT_TRIG_EDGE(hadc->Init.ExternalTrigConvEdge)); in HAL_ADC_Init()
339 if (hadc->State == HAL_ADC_STATE_RESET) in HAL_ADC_Init()
343hadc->ConvCpltCallback = HAL_ADC_ConvCpltCallback; /* Legacy weak cal… in HAL_ADC_Init()
344hadc->ConvHalfCpltCallback = HAL_ADC_ConvHalfCpltCallback; /* Legacy weak cal… in HAL_ADC_Init()
345hadc->LevelOutOfWindowCallback = HAL_ADC_LevelOutOfWindowCallback; /* Legacy weak cal… in HAL_ADC_Init()
346hadc->ErrorCallback = HAL_ADC_ErrorCallback; /* Legacy weak cal… in HAL_ADC_Init()
347hadc->InjectedConvCpltCallback = HAL_ADCEx_InjectedConvCpltCallback; /* Legacy weak cal… in HAL_ADC_Init()
348 if (hadc->MspInitCallback == NULL) in HAL_ADC_Init()
350 hadc->MspInitCallback = HAL_ADC_MspInit; /* Legacy weak MspInit */ in HAL_ADC_Init()
354 hadc->MspInitCallback(hadc); in HAL_ADC_Init()
357 HAL_ADC_MspInit(hadc); in HAL_ADC_Init()
361 ADC_CLEAR_ERRORCODE(hadc); in HAL_ADC_Init()
364 hadc->Lock = HAL_UNLOCKED; in HAL_ADC_Init()
369 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL)) in HAL_ADC_Init()
372 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Init()
377 ADC_Init(hadc); in HAL_ADC_Init()
380 ADC_CLEAR_ERRORCODE(hadc); in HAL_ADC_Init()
383 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Init()
393 __HAL_UNLOCK(hadc); in HAL_ADC_Init()
405 HAL_StatusTypeDef HAL_ADC_DeInit(ADC_HandleTypeDef *hadc) in HAL_ADC_DeInit() argument
410 if (hadc == NULL) in HAL_ADC_DeInit()
416 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_DeInit()
419 SET_BIT(hadc->State, HAL_ADC_STATE_BUSY_INTERNAL); in HAL_ADC_DeInit()
423 __HAL_ADC_DISABLE(hadc); in HAL_ADC_DeInit()
427 if (HAL_IS_BIT_CLR(hadc->Instance->CR2, ADC_CR2_ADON)) in HAL_ADC_DeInit()
430 if (hadc->MspDeInitCallback == NULL) in HAL_ADC_DeInit()
432 hadc->MspDeInitCallback = HAL_ADC_MspDeInit; /* Legacy weak MspDeInit */ in HAL_ADC_DeInit()
436 hadc->MspDeInitCallback(hadc); in HAL_ADC_DeInit()
439 HAL_ADC_MspDeInit(hadc); in HAL_ADC_DeInit()
443 ADC_CLEAR_ERRORCODE(hadc); in HAL_ADC_DeInit()
446 hadc->State = HAL_ADC_STATE_RESET; in HAL_ADC_DeInit()
450 __HAL_UNLOCK(hadc); in HAL_ADC_DeInit()
474 HAL_StatusTypeDef HAL_ADC_RegisterCallback(ADC_HandleTypeDef *hadc, HAL_ADC_CallbackIDTypeDef Callb… in HAL_ADC_RegisterCallback() argument
481 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_RegisterCallback()
486 if ((hadc->State & HAL_ADC_STATE_READY) != 0UL) in HAL_ADC_RegisterCallback()
491 hadc->ConvCpltCallback = pCallback; in HAL_ADC_RegisterCallback()
495 hadc->ConvHalfCpltCallback = pCallback; in HAL_ADC_RegisterCallback()
499 hadc->LevelOutOfWindowCallback = pCallback; in HAL_ADC_RegisterCallback()
503 hadc->ErrorCallback = pCallback; in HAL_ADC_RegisterCallback()
507 hadc->InjectedConvCpltCallback = pCallback; in HAL_ADC_RegisterCallback()
511 hadc->MspInitCallback = pCallback; in HAL_ADC_RegisterCallback()
515 hadc->MspDeInitCallback = pCallback; in HAL_ADC_RegisterCallback()
520 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_RegisterCallback()
527 else if (HAL_ADC_STATE_RESET == hadc->State) in HAL_ADC_RegisterCallback()
532 hadc->MspInitCallback = pCallback; in HAL_ADC_RegisterCallback()
536 hadc->MspDeInitCallback = pCallback; in HAL_ADC_RegisterCallback()
541 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_RegisterCallback()
551 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_RegisterCallback()
576 HAL_StatusTypeDef HAL_ADC_UnRegisterCallback(ADC_HandleTypeDef *hadc, HAL_ADC_CallbackIDTypeDef Cal… in HAL_ADC_UnRegisterCallback() argument
580 if ((hadc->State & HAL_ADC_STATE_READY) != 0UL) in HAL_ADC_UnRegisterCallback()
585 hadc->ConvCpltCallback = HAL_ADC_ConvCpltCallback; in HAL_ADC_UnRegisterCallback()
589 hadc->ConvHalfCpltCallback = HAL_ADC_ConvHalfCpltCallback; in HAL_ADC_UnRegisterCallback()
593 hadc->LevelOutOfWindowCallback = HAL_ADC_LevelOutOfWindowCallback; in HAL_ADC_UnRegisterCallback()
597 hadc->ErrorCallback = HAL_ADC_ErrorCallback; in HAL_ADC_UnRegisterCallback()
601 hadc->InjectedConvCpltCallback = HAL_ADCEx_InjectedConvCpltCallback; in HAL_ADC_UnRegisterCallback()
605 hadc->MspInitCallback = HAL_ADC_MspInit; /* Legacy weak MspInit */ in HAL_ADC_UnRegisterCallback()
609 hadc->MspDeInitCallback = HAL_ADC_MspDeInit; /* Legacy weak MspDeInit */ in HAL_ADC_UnRegisterCallback()
614 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_UnRegisterCallback()
621 else if (HAL_ADC_STATE_RESET == hadc->State) in HAL_ADC_UnRegisterCallback()
626hadc->MspInitCallback = HAL_ADC_MspInit; /* Legacy weak MspInit */ in HAL_ADC_UnRegisterCallback()
630hadc->MspDeInitCallback = HAL_ADC_MspDeInit; /* Legacy weak MspDeInit */ in HAL_ADC_UnRegisterCallback()
635 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_UnRegisterCallback()
645 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_UnRegisterCallback()
662 __weak void HAL_ADC_MspInit(ADC_HandleTypeDef *hadc) in HAL_ADC_MspInit() argument
665 UNUSED(hadc); in HAL_ADC_MspInit()
677 __weak void HAL_ADC_MspDeInit(ADC_HandleTypeDef *hadc) in HAL_ADC_MspDeInit() argument
680 UNUSED(hadc); in HAL_ADC_MspDeInit()
716 HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef *hadc) in HAL_ADC_Start() argument
722 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode)); in HAL_ADC_Start()
723 assert_param(IS_ADC_EXT_TRIG_EDGE(hadc->Init.ExternalTrigConvEdge)); in HAL_ADC_Start()
726 __HAL_LOCK(hadc); in HAL_ADC_Start()
731 if ((hadc->Instance->CR2 & ADC_CR2_ADON) != ADC_CR2_ADON) in HAL_ADC_Start()
734 __HAL_ADC_ENABLE(hadc); in HAL_ADC_Start()
746 if (HAL_IS_BIT_SET(hadc->Instance->CR2, ADC_CR2_ADON)) in HAL_ADC_Start()
751 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Start()
757 if (READ_BIT(hadc->Instance->CR1, ADC_CR1_JAUTO) != RESET) in HAL_ADC_Start()
759 ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_INJ_BUSY); in HAL_ADC_Start()
763 if (HAL_IS_BIT_SET(hadc->State, HAL_ADC_STATE_INJ_BUSY)) in HAL_ADC_Start()
766 CLEAR_BIT(hadc->ErrorCode, (HAL_ADC_ERROR_OVR | HAL_ADC_ERROR_DMA)); in HAL_ADC_Start()
771 ADC_CLEAR_ERRORCODE(hadc); in HAL_ADC_Start()
777 __HAL_UNLOCK(hadc); in HAL_ADC_Start()
782 tmpADC_Common = ADC_COMMON_REGISTER(hadc); in HAL_ADC_Start()
786 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_EOC | ADC_FLAG_OVR); in HAL_ADC_Start()
792 …if ((hadc->Instance == ADC1) || ((hadc->Instance == ADC2) && ((ADC->CCR & ADC_CCR_MULTI_Msk) < ADC… in HAL_ADC_Start()
793 || ((hadc->Instance == ADC3) && ((ADC->CCR & ADC_CCR_MULTI_Msk) < ADC_CCR_MULTI_4))) in HAL_ADC_Start()
797 if ((hadc->Instance->CR2 & ADC_CR2_EXTEN) == RESET) in HAL_ADC_Start()
800 hadc->Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART; in HAL_ADC_Start()
809 if ((hadc->Instance == ADC1) && ((hadc->Instance->CR2 & ADC_CR2_EXTEN) == RESET)) in HAL_ADC_Start()
812 hadc->Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART; in HAL_ADC_Start()
819 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); in HAL_ADC_Start()
822 SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); in HAL_ADC_Start()
839 HAL_StatusTypeDef HAL_ADC_Stop(ADC_HandleTypeDef *hadc) in HAL_ADC_Stop() argument
842 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_Stop()
845 __HAL_LOCK(hadc); in HAL_ADC_Stop()
849 __HAL_ADC_DISABLE(hadc); in HAL_ADC_Stop()
852 if (HAL_IS_BIT_CLR(hadc->Instance->CR2, ADC_CR2_ADON)) in HAL_ADC_Stop()
855 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Stop()
861 __HAL_UNLOCK(hadc); in HAL_ADC_Stop()
882 HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef *hadc, uint32_t Timeout) in HAL_ADC_PollForConversion() argument
892 if (HAL_IS_BIT_SET(hadc->Instance->CR2, ADC_CR2_EOCS) && in HAL_ADC_PollForConversion()
893 HAL_IS_BIT_SET(hadc->Instance->CR2, ADC_CR2_DMA)) in HAL_ADC_PollForConversion()
896 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); in HAL_ADC_PollForConversion()
899 __HAL_UNLOCK(hadc); in HAL_ADC_PollForConversion()
908 while (!(__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_EOC))) in HAL_ADC_PollForConversion()
916 if (!(__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_EOC))) in HAL_ADC_PollForConversion()
919 SET_BIT(hadc->State, HAL_ADC_STATE_TIMEOUT); in HAL_ADC_PollForConversion()
922 __HAL_UNLOCK(hadc); in HAL_ADC_PollForConversion()
931 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_STRT | ADC_FLAG_EOC); in HAL_ADC_PollForConversion()
934 SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOC); in HAL_ADC_PollForConversion()
942 if (ADC_IS_SOFTWARE_START_REGULAR(hadc) && in HAL_ADC_PollForConversion()
943 (hadc->Init.ContinuousConvMode == DISABLE) && in HAL_ADC_PollForConversion()
944 (HAL_IS_BIT_CLR(hadc->Instance->SQR1, ADC_SQR1_L) || in HAL_ADC_PollForConversion()
945 HAL_IS_BIT_CLR(hadc->Instance->CR2, ADC_CR2_EOCS))) in HAL_ADC_PollForConversion()
948 CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); in HAL_ADC_PollForConversion()
950 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_INJ_BUSY)) in HAL_ADC_PollForConversion()
952 SET_BIT(hadc->State, HAL_ADC_STATE_READY); in HAL_ADC_PollForConversion()
971 HAL_StatusTypeDef HAL_ADC_PollForEvent(ADC_HandleTypeDef *hadc, uint32_t EventType, uint32_t Timeou… in HAL_ADC_PollForEvent() argument
976 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_PollForEvent()
983 while (!(__HAL_ADC_GET_FLAG(hadc, EventType))) in HAL_ADC_PollForEvent()
991 if (!(__HAL_ADC_GET_FLAG(hadc, EventType))) in HAL_ADC_PollForEvent()
994 SET_BIT(hadc->State, HAL_ADC_STATE_TIMEOUT); in HAL_ADC_PollForEvent()
997 __HAL_UNLOCK(hadc); in HAL_ADC_PollForEvent()
1009 SET_BIT(hadc->State, HAL_ADC_STATE_AWD1); in HAL_ADC_PollForEvent()
1012 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_AWD); in HAL_ADC_PollForEvent()
1018 SET_BIT(hadc->State, HAL_ADC_STATE_REG_OVR); in HAL_ADC_PollForEvent()
1020 SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_OVR); in HAL_ADC_PollForEvent()
1023 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_OVR); in HAL_ADC_PollForEvent()
1037 HAL_StatusTypeDef HAL_ADC_Start_IT(ADC_HandleTypeDef *hadc) in HAL_ADC_Start_IT() argument
1043 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode)); in HAL_ADC_Start_IT()
1044 assert_param(IS_ADC_EXT_TRIG_EDGE(hadc->Init.ExternalTrigConvEdge)); in HAL_ADC_Start_IT()
1047 __HAL_LOCK(hadc); in HAL_ADC_Start_IT()
1052 if ((hadc->Instance->CR2 & ADC_CR2_ADON) != ADC_CR2_ADON) in HAL_ADC_Start_IT()
1055 __HAL_ADC_ENABLE(hadc); in HAL_ADC_Start_IT()
1067 if (HAL_IS_BIT_SET(hadc->Instance->CR2, ADC_CR2_ADON)) in HAL_ADC_Start_IT()
1072 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Start_IT()
1078 if (READ_BIT(hadc->Instance->CR1, ADC_CR1_JAUTO) != RESET) in HAL_ADC_Start_IT()
1080 ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_INJ_BUSY); in HAL_ADC_Start_IT()
1084 if (HAL_IS_BIT_SET(hadc->State, HAL_ADC_STATE_INJ_BUSY)) in HAL_ADC_Start_IT()
1087 CLEAR_BIT(hadc->ErrorCode, (HAL_ADC_ERROR_OVR | HAL_ADC_ERROR_DMA)); in HAL_ADC_Start_IT()
1092 ADC_CLEAR_ERRORCODE(hadc); in HAL_ADC_Start_IT()
1098 __HAL_UNLOCK(hadc); in HAL_ADC_Start_IT()
1103 tmpADC_Common = ADC_COMMON_REGISTER(hadc); in HAL_ADC_Start_IT()
1107 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_EOC | ADC_FLAG_OVR); in HAL_ADC_Start_IT()
1110 __HAL_ADC_ENABLE_IT(hadc, (ADC_IT_EOC | ADC_IT_OVR)); in HAL_ADC_Start_IT()
1116 …if ((hadc->Instance == ADC1) || ((hadc->Instance == ADC2) && ((ADC->CCR & ADC_CCR_MULTI_Msk) < ADC… in HAL_ADC_Start_IT()
1117 || ((hadc->Instance == ADC3) && ((ADC->CCR & ADC_CCR_MULTI_Msk) < ADC_CCR_MULTI_4))) in HAL_ADC_Start_IT()
1121 if ((hadc->Instance->CR2 & ADC_CR2_EXTEN) == RESET) in HAL_ADC_Start_IT()
1124 hadc->Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART; in HAL_ADC_Start_IT()
1133 if ((hadc->Instance == ADC1) && ((hadc->Instance->CR2 & ADC_CR2_EXTEN) == RESET)) in HAL_ADC_Start_IT()
1136 hadc->Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART; in HAL_ADC_Start_IT()
1143 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); in HAL_ADC_Start_IT()
1146 SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); in HAL_ADC_Start_IT()
1162 HAL_StatusTypeDef HAL_ADC_Stop_IT(ADC_HandleTypeDef *hadc) in HAL_ADC_Stop_IT() argument
1165 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_Stop_IT()
1168 __HAL_LOCK(hadc); in HAL_ADC_Stop_IT()
1172 __HAL_ADC_DISABLE(hadc); in HAL_ADC_Stop_IT()
1175 if (HAL_IS_BIT_CLR(hadc->Instance->CR2, ADC_CR2_ADON)) in HAL_ADC_Stop_IT()
1178 __HAL_ADC_DISABLE_IT(hadc, (ADC_IT_EOC | ADC_IT_OVR)); in HAL_ADC_Stop_IT()
1181 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Stop_IT()
1187 __HAL_UNLOCK(hadc); in HAL_ADC_Stop_IT()
1199 void HAL_ADC_IRQHandler(ADC_HandleTypeDef *hadc) in HAL_ADC_IRQHandler() argument
1203 uint32_t tmp_sr = hadc->Instance->SR; in HAL_ADC_IRQHandler()
1204 uint32_t tmp_cr1 = hadc->Instance->CR1; in HAL_ADC_IRQHandler()
1207 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode)); in HAL_ADC_IRQHandler()
1208 assert_param(IS_ADC_REGULAR_LENGTH(hadc->Init.NbrOfConversion)); in HAL_ADC_IRQHandler()
1209 assert_param(IS_ADC_EOCSelection(hadc->Init.EOCSelection)); in HAL_ADC_IRQHandler()
1217 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL)) in HAL_ADC_IRQHandler()
1220 SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOC); in HAL_ADC_IRQHandler()
1229 if (ADC_IS_SOFTWARE_START_REGULAR(hadc) && in HAL_ADC_IRQHandler()
1230 (hadc->Init.ContinuousConvMode == DISABLE) && in HAL_ADC_IRQHandler()
1231 (HAL_IS_BIT_CLR(hadc->Instance->SQR1, ADC_SQR1_L) || in HAL_ADC_IRQHandler()
1232 HAL_IS_BIT_CLR(hadc->Instance->CR2, ADC_CR2_EOCS))) in HAL_ADC_IRQHandler()
1238 __HAL_ADC_DISABLE_IT(hadc, ADC_IT_EOC); in HAL_ADC_IRQHandler()
1241 CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); in HAL_ADC_IRQHandler()
1243 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_INJ_BUSY)) in HAL_ADC_IRQHandler()
1245 SET_BIT(hadc->State, HAL_ADC_STATE_READY); in HAL_ADC_IRQHandler()
1251 hadc->ConvCpltCallback(hadc); in HAL_ADC_IRQHandler()
1253 HAL_ADC_ConvCpltCallback(hadc); in HAL_ADC_IRQHandler()
1257 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_STRT | ADC_FLAG_EOC); in HAL_ADC_IRQHandler()
1266 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL)) in HAL_ADC_IRQHandler()
1269 SET_BIT(hadc->State, HAL_ADC_STATE_INJ_EOC); in HAL_ADC_IRQHandler()
1276 if (ADC_IS_SOFTWARE_START_INJECTED(hadc) && in HAL_ADC_IRQHandler()
1277 (HAL_IS_BIT_CLR(hadc->Instance->JSQR, ADC_JSQR_JL) || in HAL_ADC_IRQHandler()
1278 HAL_IS_BIT_CLR(hadc->Instance->CR2, ADC_CR2_EOCS)) && in HAL_ADC_IRQHandler()
1279 (HAL_IS_BIT_CLR(hadc->Instance->CR1, ADC_CR1_JAUTO) && in HAL_ADC_IRQHandler()
1280 (ADC_IS_SOFTWARE_START_REGULAR(hadc) && in HAL_ADC_IRQHandler()
1281 (hadc->Init.ContinuousConvMode == DISABLE)))) in HAL_ADC_IRQHandler()
1284 __HAL_ADC_DISABLE_IT(hadc, ADC_IT_JEOC); in HAL_ADC_IRQHandler()
1287 CLEAR_BIT(hadc->State, HAL_ADC_STATE_INJ_BUSY); in HAL_ADC_IRQHandler()
1289 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_REG_BUSY)) in HAL_ADC_IRQHandler()
1291 SET_BIT(hadc->State, HAL_ADC_STATE_READY); in HAL_ADC_IRQHandler()
1298 hadc->InjectedConvCpltCallback(hadc); in HAL_ADC_IRQHandler()
1300 HAL_ADCEx_InjectedConvCpltCallback(hadc); in HAL_ADC_IRQHandler()
1304 __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_JSTRT | ADC_FLAG_JEOC)); in HAL_ADC_IRQHandler()
1312 if (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_AWD)) in HAL_ADC_IRQHandler()
1315 SET_BIT(hadc->State, HAL_ADC_STATE_AWD1); in HAL_ADC_IRQHandler()
1319 hadc->LevelOutOfWindowCallback(hadc); in HAL_ADC_IRQHandler()
1321 HAL_ADC_LevelOutOfWindowCallback(hadc); in HAL_ADC_IRQHandler()
1325 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_AWD); in HAL_ADC_IRQHandler()
1339 SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_OVR); in HAL_ADC_IRQHandler()
1342 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_OVR); in HAL_ADC_IRQHandler()
1346 hadc->ErrorCallback(hadc); in HAL_ADC_IRQHandler()
1348 HAL_ADC_ErrorCallback(hadc); in HAL_ADC_IRQHandler()
1352 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_OVR); in HAL_ADC_IRQHandler()
1364 HAL_StatusTypeDef HAL_ADC_Start_DMA(ADC_HandleTypeDef *hadc, uint32_t *pData, uint32_t Length) in HAL_ADC_Start_DMA() argument
1370 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode)); in HAL_ADC_Start_DMA()
1371 assert_param(IS_ADC_EXT_TRIG_EDGE(hadc->Init.ExternalTrigConvEdge)); in HAL_ADC_Start_DMA()
1374 __HAL_LOCK(hadc); in HAL_ADC_Start_DMA()
1379 if ((hadc->Instance->CR2 & ADC_CR2_ADON) != ADC_CR2_ADON) in HAL_ADC_Start_DMA()
1382 __HAL_ADC_ENABLE(hadc); in HAL_ADC_Start_DMA()
1395 if ((hadc->Instance->CR2 & ADC_CR2_DMA) == ADC_CR2_DMA) in HAL_ADC_Start_DMA()
1397 CLEAR_BIT(hadc->Instance->CR2, ADC_CR2_DMA); in HAL_ADC_Start_DMA()
1401 if (HAL_IS_BIT_SET(hadc->Instance->CR2, ADC_CR2_ADON)) in HAL_ADC_Start_DMA()
1406 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Start_DMA()
1412 if (READ_BIT(hadc->Instance->CR1, ADC_CR1_JAUTO) != RESET) in HAL_ADC_Start_DMA()
1414 ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_INJ_BUSY); in HAL_ADC_Start_DMA()
1418 if (HAL_IS_BIT_SET(hadc->State, HAL_ADC_STATE_INJ_BUSY)) in HAL_ADC_Start_DMA()
1421 CLEAR_BIT(hadc->ErrorCode, (HAL_ADC_ERROR_OVR | HAL_ADC_ERROR_DMA)); in HAL_ADC_Start_DMA()
1426 ADC_CLEAR_ERRORCODE(hadc); in HAL_ADC_Start_DMA()
1432 __HAL_UNLOCK(hadc); in HAL_ADC_Start_DMA()
1437 tmpADC_Common = ADC_COMMON_REGISTER(hadc); in HAL_ADC_Start_DMA()
1440 hadc->DMA_Handle->XferCpltCallback = ADC_DMAConvCplt; in HAL_ADC_Start_DMA()
1443 hadc->DMA_Handle->XferHalfCpltCallback = ADC_DMAHalfConvCplt; in HAL_ADC_Start_DMA()
1446 hadc->DMA_Handle->XferErrorCallback = ADC_DMAError; in HAL_ADC_Start_DMA()
1454 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_EOC | ADC_FLAG_OVR); in HAL_ADC_Start_DMA()
1457 __HAL_ADC_ENABLE_IT(hadc, ADC_IT_OVR); in HAL_ADC_Start_DMA()
1460 hadc->Instance->CR2 |= ADC_CR2_DMA; in HAL_ADC_Start_DMA()
1463 HAL_DMA_Start_IT(hadc->DMA_Handle, (uint32_t)&hadc->Instance->DR, (uint32_t)pData, Length); in HAL_ADC_Start_DMA()
1469 …if ((hadc->Instance == ADC1) || ((hadc->Instance == ADC2) && ((ADC->CCR & ADC_CCR_MULTI_Msk) < ADC… in HAL_ADC_Start_DMA()
1470 || ((hadc->Instance == ADC3) && ((ADC->CCR & ADC_CCR_MULTI_Msk) < ADC_CCR_MULTI_4))) in HAL_ADC_Start_DMA()
1474 if ((hadc->Instance->CR2 & ADC_CR2_EXTEN) == RESET) in HAL_ADC_Start_DMA()
1477 hadc->Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART; in HAL_ADC_Start_DMA()
1486 if ((hadc->Instance == ADC1) && ((hadc->Instance->CR2 & ADC_CR2_EXTEN) == RESET)) in HAL_ADC_Start_DMA()
1489 hadc->Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART; in HAL_ADC_Start_DMA()
1496 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); in HAL_ADC_Start_DMA()
1499 SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); in HAL_ADC_Start_DMA()
1512 HAL_StatusTypeDef HAL_ADC_Stop_DMA(ADC_HandleTypeDef *hadc) in HAL_ADC_Stop_DMA() argument
1517 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_Stop_DMA()
1520 __HAL_LOCK(hadc); in HAL_ADC_Stop_DMA()
1524 __HAL_ADC_DISABLE(hadc); in HAL_ADC_Stop_DMA()
1527 if (HAL_IS_BIT_CLR(hadc->Instance->CR2, ADC_CR2_ADON)) in HAL_ADC_Stop_DMA()
1530 hadc->Instance->CR2 &= ~ADC_CR2_DMA; in HAL_ADC_Stop_DMA()
1534 if (hadc->DMA_Handle->State == HAL_DMA_STATE_BUSY) in HAL_ADC_Stop_DMA()
1536 tmp_hal_status = HAL_DMA_Abort(hadc->DMA_Handle); in HAL_ADC_Stop_DMA()
1542 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_DMA); in HAL_ADC_Stop_DMA()
1547 __HAL_ADC_DISABLE_IT(hadc, ADC_IT_OVR); in HAL_ADC_Stop_DMA()
1550 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Stop_DMA()
1556 __HAL_UNLOCK(hadc); in HAL_ADC_Stop_DMA()
1568 uint32_t HAL_ADC_GetValue(ADC_HandleTypeDef *hadc) in HAL_ADC_GetValue() argument
1571 return hadc->Instance->DR; in HAL_ADC_GetValue()
1580 __weak void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc) in HAL_ADC_ConvCpltCallback() argument
1583 UNUSED(hadc); in HAL_ADC_ConvCpltCallback()
1595 __weak void HAL_ADC_ConvHalfCpltCallback(ADC_HandleTypeDef *hadc) in HAL_ADC_ConvHalfCpltCallback() argument
1598 UNUSED(hadc); in HAL_ADC_ConvHalfCpltCallback()
1610 __weak void HAL_ADC_LevelOutOfWindowCallback(ADC_HandleTypeDef *hadc) in HAL_ADC_LevelOutOfWindowCallback() argument
1613 UNUSED(hadc); in HAL_ADC_LevelOutOfWindowCallback()
1631 __weak void HAL_ADC_ErrorCallback(ADC_HandleTypeDef *hadc) in HAL_ADC_ErrorCallback() argument
1634 UNUSED(hadc); in HAL_ADC_ErrorCallback()
1669 HAL_StatusTypeDef HAL_ADC_ConfigChannel(ADC_HandleTypeDef *hadc, ADC_ChannelConfTypeDef *sConfig) in HAL_ADC_ConfigChannel() argument
1680 __HAL_LOCK(hadc); in HAL_ADC_ConfigChannel()
1686 hadc->Instance->SMPR1 &= ~ADC_SMPR1(ADC_SMPR1_SMP10, sConfig->Channel); in HAL_ADC_ConfigChannel()
1689 hadc->Instance->SMPR1 |= ADC_SMPR1(sConfig->SamplingTime, sConfig->Channel); in HAL_ADC_ConfigChannel()
1694 hadc->Instance->SMPR2 &= ~ADC_SMPR2(ADC_SMPR2_SMP0, sConfig->Channel); in HAL_ADC_ConfigChannel()
1697 hadc->Instance->SMPR2 |= ADC_SMPR2(sConfig->SamplingTime, sConfig->Channel); in HAL_ADC_ConfigChannel()
1704 hadc->Instance->SQR3 &= ~ADC_SQR3_RK(ADC_SQR3_SQ1, sConfig->Rank); in HAL_ADC_ConfigChannel()
1707 hadc->Instance->SQR3 |= ADC_SQR3_RK(sConfig->Channel, sConfig->Rank); in HAL_ADC_ConfigChannel()
1713 hadc->Instance->SQR2 &= ~ADC_SQR2_RK(ADC_SQR2_SQ7, sConfig->Rank); in HAL_ADC_ConfigChannel()
1716 hadc->Instance->SQR2 |= ADC_SQR2_RK(sConfig->Channel, sConfig->Rank); in HAL_ADC_ConfigChannel()
1722 hadc->Instance->SQR1 &= ~ADC_SQR1_RK(ADC_SQR1_SQ13, sConfig->Rank); in HAL_ADC_ConfigChannel()
1725 hadc->Instance->SQR1 |= ADC_SQR1_RK(sConfig->Channel, sConfig->Rank); in HAL_ADC_ConfigChannel()
1731 tmpADC_Common = ADC_COMMON_REGISTER(hadc); in HAL_ADC_ConfigChannel()
1734 if ((hadc->Instance == ADC1) && (sConfig->Channel == ADC_CHANNEL_VBAT)) in HAL_ADC_ConfigChannel()
1747 …if ((hadc->Instance == ADC1) && ((sConfig->Channel == ADC_CHANNEL_TEMPSENSOR) || (sConfig->Channel… in HAL_ADC_ConfigChannel()
1770 __HAL_UNLOCK(hadc); in HAL_ADC_ConfigChannel()
1792 HAL_StatusTypeDef HAL_ADC_AnalogWDGConfig(ADC_HandleTypeDef *hadc, ADC_AnalogWDGConfTypeDef *Analog… in HAL_ADC_AnalogWDGConfig() argument
1804 tmp = ADC_GET_RESOLUTION(hadc); in HAL_ADC_AnalogWDGConfig()
1810 __HAL_LOCK(hadc); in HAL_ADC_AnalogWDGConfig()
1815 __HAL_ADC_ENABLE_IT(hadc, ADC_IT_AWD); in HAL_ADC_AnalogWDGConfig()
1820 __HAL_ADC_DISABLE_IT(hadc, ADC_IT_AWD); in HAL_ADC_AnalogWDGConfig()
1824 hadc->Instance->CR1 &= ~(ADC_CR1_AWDSGL | ADC_CR1_JAWDEN | ADC_CR1_AWDEN); in HAL_ADC_AnalogWDGConfig()
1827 hadc->Instance->CR1 |= AnalogWDGConfig->WatchdogMode; in HAL_ADC_AnalogWDGConfig()
1830 hadc->Instance->HTR = AnalogWDGConfig->HighThreshold; in HAL_ADC_AnalogWDGConfig()
1833 hadc->Instance->LTR = AnalogWDGConfig->LowThreshold; in HAL_ADC_AnalogWDGConfig()
1836 hadc->Instance->CR1 &= ~ADC_CR1_AWDCH; in HAL_ADC_AnalogWDGConfig()
1839 hadc->Instance->CR1 |= (uint32_t)((uint16_t)(AnalogWDGConfig->Channel)); in HAL_ADC_AnalogWDGConfig()
1842 __HAL_UNLOCK(hadc); in HAL_ADC_AnalogWDGConfig()
1874 uint32_t HAL_ADC_GetState(ADC_HandleTypeDef *hadc) in HAL_ADC_GetState() argument
1877 return hadc->State; in HAL_ADC_GetState()
1886 uint32_t HAL_ADC_GetError(ADC_HandleTypeDef *hadc) in HAL_ADC_GetError() argument
1888 return hadc->ErrorCode; in HAL_ADC_GetError()
1906 static void ADC_Init(ADC_HandleTypeDef *hadc) in ADC_Init() argument
1914 tmpADC_Common = ADC_COMMON_REGISTER(hadc); in ADC_Init()
1918 tmpADC_Common->CCR |= hadc->Init.ClockPrescaler; in ADC_Init()
1921 hadc->Instance->CR1 &= ~(ADC_CR1_SCAN); in ADC_Init()
1922 hadc->Instance->CR1 |= ADC_CR1_SCANCONV(hadc->Init.ScanConvMode); in ADC_Init()
1925 hadc->Instance->CR1 &= ~(ADC_CR1_RES); in ADC_Init()
1926 hadc->Instance->CR1 |= hadc->Init.Resolution; in ADC_Init()
1929 hadc->Instance->CR2 &= ~(ADC_CR2_ALIGN); in ADC_Init()
1930 hadc->Instance->CR2 |= hadc->Init.DataAlign; in ADC_Init()
1937 if (hadc->Init.ExternalTrigConv != ADC_SOFTWARE_START) in ADC_Init()
1940 hadc->Instance->CR2 &= ~(ADC_CR2_EXTSEL); in ADC_Init()
1941 hadc->Instance->CR2 |= hadc->Init.ExternalTrigConv; in ADC_Init()
1944 hadc->Instance->CR2 &= ~(ADC_CR2_EXTEN); in ADC_Init()
1945 hadc->Instance->CR2 |= hadc->Init.ExternalTrigConvEdge; in ADC_Init()
1950 hadc->Instance->CR2 &= ~(ADC_CR2_EXTSEL); in ADC_Init()
1951 hadc->Instance->CR2 &= ~(ADC_CR2_EXTEN); in ADC_Init()
1955 hadc->Instance->CR2 &= ~(ADC_CR2_CONT); in ADC_Init()
1956 hadc->Instance->CR2 |= ADC_CR2_CONTINUOUS((uint32_t)hadc->Init.ContinuousConvMode); in ADC_Init()
1958 if (hadc->Init.DiscontinuousConvMode != DISABLE) in ADC_Init()
1960 assert_param(IS_ADC_REGULAR_DISC_NUMBER(hadc->Init.NbrOfDiscConversion)); in ADC_Init()
1963 hadc->Instance->CR1 |= (uint32_t)ADC_CR1_DISCEN; in ADC_Init()
1966 hadc->Instance->CR1 &= ~(ADC_CR1_DISCNUM); in ADC_Init()
1967 hadc->Instance->CR1 |= ADC_CR1_DISCONTINUOUS(hadc->Init.NbrOfDiscConversion); in ADC_Init()
1972 hadc->Instance->CR1 &= ~(ADC_CR1_DISCEN); in ADC_Init()
1976 hadc->Instance->SQR1 &= ~(ADC_SQR1_L); in ADC_Init()
1977 hadc->Instance->SQR1 |= ADC_SQR1(hadc->Init.NbrOfConversion); in ADC_Init()
1980 hadc->Instance->CR2 &= ~(ADC_CR2_DDS); in ADC_Init()
1981 hadc->Instance->CR2 |= ADC_CR2_DMAContReq((uint32_t)hadc->Init.DMAContinuousRequests); in ADC_Init()
1984 hadc->Instance->CR2 &= ~(ADC_CR2_EOCS); in ADC_Init()
1985 hadc->Instance->CR2 |= ADC_CR2_EOCSelection(hadc->Init.EOCSelection); in ADC_Init()
1997 ADC_HandleTypeDef *hadc = (ADC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in ADC_DMAConvCplt() local
2000 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL | HAL_ADC_STATE_ERROR_DMA)) in ADC_DMAConvCplt()
2003 SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOC); in ADC_DMAConvCplt()
2011 if (ADC_IS_SOFTWARE_START_REGULAR(hadc) && in ADC_DMAConvCplt()
2012 (hadc->Init.ContinuousConvMode == DISABLE) && in ADC_DMAConvCplt()
2013 (HAL_IS_BIT_CLR(hadc->Instance->SQR1, ADC_SQR1_L) || in ADC_DMAConvCplt()
2014 HAL_IS_BIT_CLR(hadc->Instance->CR2, ADC_CR2_EOCS))) in ADC_DMAConvCplt()
2020 __HAL_ADC_DISABLE_IT(hadc, ADC_IT_EOC); in ADC_DMAConvCplt()
2023 CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); in ADC_DMAConvCplt()
2025 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_INJ_BUSY)) in ADC_DMAConvCplt()
2027 SET_BIT(hadc->State, HAL_ADC_STATE_READY); in ADC_DMAConvCplt()
2033 hadc->ConvCpltCallback(hadc); in ADC_DMAConvCplt()
2035 HAL_ADC_ConvCpltCallback(hadc); in ADC_DMAConvCplt()
2040 if ((hadc->State & HAL_ADC_STATE_ERROR_INTERNAL) != 0UL) in ADC_DMAConvCplt()
2044 hadc->ErrorCallback(hadc); in ADC_DMAConvCplt()
2046 HAL_ADC_ErrorCallback(hadc); in ADC_DMAConvCplt()
2052 hadc->DMA_Handle->XferErrorCallback(hdma); in ADC_DMAConvCplt()
2065 ADC_HandleTypeDef *hadc = (ADC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in ADC_DMAHalfConvCplt() local
2068 hadc->ConvHalfCpltCallback(hadc); in ADC_DMAHalfConvCplt()
2070 HAL_ADC_ConvHalfCpltCallback(hadc); in ADC_DMAHalfConvCplt()
2082 ADC_HandleTypeDef *hadc = (ADC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in ADC_DMAError() local
2083 hadc->State = HAL_ADC_STATE_ERROR_DMA; in ADC_DMAError()
2085 hadc->ErrorCode |= HAL_ADC_ERROR_DMA; in ADC_DMAError()
2088 hadc->ErrorCallback(hadc); in ADC_DMAError()
2090 HAL_ADC_ErrorCallback(hadc); in ADC_DMAError()