Lines Matching refs:hadc
270 static void ADC_Init(ADC_HandleTypeDef* hadc);
312 HAL_StatusTypeDef HAL_ADC_Init(ADC_HandleTypeDef* hadc) in HAL_ADC_Init() argument
317 if(hadc == NULL) in HAL_ADC_Init()
323 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_Init()
324 assert_param(IS_ADC_CLOCKPRESCALER(hadc->Init.ClockPrescaler)); in HAL_ADC_Init()
325 assert_param(IS_ADC_RESOLUTION(hadc->Init.Resolution)); in HAL_ADC_Init()
326 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ScanConvMode)); in HAL_ADC_Init()
327 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode)); in HAL_ADC_Init()
328 assert_param(IS_ADC_EXT_TRIG(hadc->Init.ExternalTrigConv)); in HAL_ADC_Init()
329 assert_param(IS_ADC_DATA_ALIGN(hadc->Init.DataAlign)); in HAL_ADC_Init()
330 assert_param(IS_ADC_REGULAR_LENGTH(hadc->Init.NbrOfConversion)); in HAL_ADC_Init()
331 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.DMAContinuousRequests)); in HAL_ADC_Init()
332 assert_param(IS_ADC_EOCSelection(hadc->Init.EOCSelection)); in HAL_ADC_Init()
333 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.DiscontinuousConvMode)); in HAL_ADC_Init()
335 if(hadc->Init.ExternalTrigConv != ADC_SOFTWARE_START) in HAL_ADC_Init()
337 assert_param(IS_ADC_EXT_TRIG_EDGE(hadc->Init.ExternalTrigConvEdge)); in HAL_ADC_Init()
340 if(hadc->State == HAL_ADC_STATE_RESET) in HAL_ADC_Init()
344 …hadc->ConvCpltCallback = HAL_ADC_ConvCpltCallback; /* Legacy weak cal… in HAL_ADC_Init()
345 …hadc->ConvHalfCpltCallback = HAL_ADC_ConvHalfCpltCallback; /* Legacy weak cal… in HAL_ADC_Init()
346 …hadc->LevelOutOfWindowCallback = HAL_ADC_LevelOutOfWindowCallback; /* Legacy weak cal… in HAL_ADC_Init()
347 …hadc->ErrorCallback = HAL_ADC_ErrorCallback; /* Legacy weak cal… in HAL_ADC_Init()
348 …hadc->InjectedConvCpltCallback = HAL_ADCEx_InjectedConvCpltCallback; /* Legacy weak cal… in HAL_ADC_Init()
349 if (hadc->MspInitCallback == NULL) in HAL_ADC_Init()
351 hadc->MspInitCallback = HAL_ADC_MspInit; /* Legacy weak MspInit */ in HAL_ADC_Init()
355 hadc->MspInitCallback(hadc); in HAL_ADC_Init()
358 HAL_ADC_MspInit(hadc); in HAL_ADC_Init()
362 ADC_CLEAR_ERRORCODE(hadc); in HAL_ADC_Init()
365 hadc->Lock = HAL_UNLOCKED; in HAL_ADC_Init()
370 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL)) in HAL_ADC_Init()
373 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Init()
378 ADC_Init(hadc); in HAL_ADC_Init()
381 ADC_CLEAR_ERRORCODE(hadc); in HAL_ADC_Init()
384 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Init()
394 __HAL_UNLOCK(hadc); in HAL_ADC_Init()
406 HAL_StatusTypeDef HAL_ADC_DeInit(ADC_HandleTypeDef* hadc) in HAL_ADC_DeInit() argument
411 if(hadc == NULL) in HAL_ADC_DeInit()
417 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_DeInit()
420 SET_BIT(hadc->State, HAL_ADC_STATE_BUSY_INTERNAL); in HAL_ADC_DeInit()
424 __HAL_ADC_DISABLE(hadc); in HAL_ADC_DeInit()
428 if(HAL_IS_BIT_CLR(hadc->Instance->CR2, ADC_CR2_ADON)) in HAL_ADC_DeInit()
431 if (hadc->MspDeInitCallback == NULL) in HAL_ADC_DeInit()
433 hadc->MspDeInitCallback = HAL_ADC_MspDeInit; /* Legacy weak MspDeInit */ in HAL_ADC_DeInit()
437 hadc->MspDeInitCallback(hadc); in HAL_ADC_DeInit()
440 HAL_ADC_MspDeInit(hadc); in HAL_ADC_DeInit()
444 ADC_CLEAR_ERRORCODE(hadc); in HAL_ADC_DeInit()
447 hadc->State = HAL_ADC_STATE_RESET; in HAL_ADC_DeInit()
451 __HAL_UNLOCK(hadc); in HAL_ADC_DeInit()
476 HAL_StatusTypeDef HAL_ADC_RegisterCallback(ADC_HandleTypeDef *hadc, HAL_ADC_CallbackIDTypeDef Callb… in HAL_ADC_RegisterCallback() argument
483 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_RegisterCallback()
488 if ((hadc->State & HAL_ADC_STATE_READY) != 0UL) in HAL_ADC_RegisterCallback()
493 hadc->ConvCpltCallback = pCallback; in HAL_ADC_RegisterCallback()
497 hadc->ConvHalfCpltCallback = pCallback; in HAL_ADC_RegisterCallback()
501 hadc->LevelOutOfWindowCallback = pCallback; in HAL_ADC_RegisterCallback()
505 hadc->ErrorCallback = pCallback; in HAL_ADC_RegisterCallback()
509 hadc->InjectedConvCpltCallback = pCallback; in HAL_ADC_RegisterCallback()
513 hadc->MspInitCallback = pCallback; in HAL_ADC_RegisterCallback()
517 hadc->MspDeInitCallback = pCallback; in HAL_ADC_RegisterCallback()
522 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_RegisterCallback()
529 else if (HAL_ADC_STATE_RESET == hadc->State) in HAL_ADC_RegisterCallback()
534 hadc->MspInitCallback = pCallback; in HAL_ADC_RegisterCallback()
538 hadc->MspDeInitCallback = pCallback; in HAL_ADC_RegisterCallback()
543 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_RegisterCallback()
553 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_RegisterCallback()
579 HAL_StatusTypeDef HAL_ADC_UnRegisterCallback(ADC_HandleTypeDef *hadc, HAL_ADC_CallbackIDTypeDef Cal… in HAL_ADC_UnRegisterCallback() argument
583 if ((hadc->State & HAL_ADC_STATE_READY) != 0UL) in HAL_ADC_UnRegisterCallback()
588 hadc->ConvCpltCallback = HAL_ADC_ConvCpltCallback; in HAL_ADC_UnRegisterCallback()
592 hadc->ConvHalfCpltCallback = HAL_ADC_ConvHalfCpltCallback; in HAL_ADC_UnRegisterCallback()
596 hadc->LevelOutOfWindowCallback = HAL_ADC_LevelOutOfWindowCallback; in HAL_ADC_UnRegisterCallback()
600 hadc->ErrorCallback = HAL_ADC_ErrorCallback; in HAL_ADC_UnRegisterCallback()
604 hadc->InjectedConvCpltCallback = HAL_ADCEx_InjectedConvCpltCallback; in HAL_ADC_UnRegisterCallback()
608 hadc->MspInitCallback = HAL_ADC_MspInit; /* Legacy weak MspInit */ in HAL_ADC_UnRegisterCallback()
612 hadc->MspDeInitCallback = HAL_ADC_MspDeInit; /* Legacy weak MspDeInit */ in HAL_ADC_UnRegisterCallback()
617 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_UnRegisterCallback()
624 else if (HAL_ADC_STATE_RESET == hadc->State) in HAL_ADC_UnRegisterCallback()
629 … hadc->MspInitCallback = HAL_ADC_MspInit; /* Legacy weak MspInit */ in HAL_ADC_UnRegisterCallback()
633 … hadc->MspDeInitCallback = HAL_ADC_MspDeInit; /* Legacy weak MspDeInit */ in HAL_ADC_UnRegisterCallback()
638 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_UnRegisterCallback()
648 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_UnRegisterCallback()
665 __weak void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc) in HAL_ADC_MspInit() argument
668 UNUSED(hadc); in HAL_ADC_MspInit()
680 __weak void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc) in HAL_ADC_MspDeInit() argument
683 UNUSED(hadc); in HAL_ADC_MspDeInit()
719 HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef* hadc) in HAL_ADC_Start() argument
724 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode)); in HAL_ADC_Start()
725 assert_param(IS_ADC_EXT_TRIG_EDGE(hadc->Init.ExternalTrigConvEdge)); in HAL_ADC_Start()
728 __HAL_LOCK(hadc); in HAL_ADC_Start()
733 if((hadc->Instance->CR2 & ADC_CR2_ADON) != ADC_CR2_ADON) in HAL_ADC_Start()
736 __HAL_ADC_ENABLE(hadc); in HAL_ADC_Start()
748 if(HAL_IS_BIT_SET(hadc->Instance->CR2, ADC_CR2_ADON)) in HAL_ADC_Start()
753 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Start()
759 if (READ_BIT(hadc->Instance->CR1, ADC_CR1_JAUTO) != RESET) in HAL_ADC_Start()
761 ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_INJ_BUSY); in HAL_ADC_Start()
765 if (HAL_IS_BIT_SET(hadc->State, HAL_ADC_STATE_INJ_BUSY)) in HAL_ADC_Start()
768 CLEAR_BIT(hadc->ErrorCode, (HAL_ADC_ERROR_OVR | HAL_ADC_ERROR_DMA)); in HAL_ADC_Start()
773 ADC_CLEAR_ERRORCODE(hadc); in HAL_ADC_Start()
779 __HAL_UNLOCK(hadc); in HAL_ADC_Start()
783 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_EOC | ADC_FLAG_OVR); in HAL_ADC_Start()
789 if((hadc->Instance->CR2 & ADC_CR2_EXTEN) == RESET) in HAL_ADC_Start()
792 hadc->Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART; in HAL_ADC_Start()
798 if((hadc->Instance == ADC1) && ((hadc->Instance->CR2 & ADC_CR2_EXTEN) == RESET)) in HAL_ADC_Start()
801 hadc->Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART; in HAL_ADC_Start()
808 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); in HAL_ADC_Start()
811 SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); in HAL_ADC_Start()
828 HAL_StatusTypeDef HAL_ADC_Stop(ADC_HandleTypeDef* hadc) in HAL_ADC_Stop() argument
831 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_Stop()
834 __HAL_LOCK(hadc); in HAL_ADC_Stop()
838 __HAL_ADC_DISABLE(hadc); in HAL_ADC_Stop()
841 if(HAL_IS_BIT_CLR(hadc->Instance->CR2, ADC_CR2_ADON)) in HAL_ADC_Stop()
844 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Stop()
850 __HAL_UNLOCK(hadc); in HAL_ADC_Stop()
871 HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef* hadc, uint32_t Timeout) in HAL_ADC_PollForConversion() argument
881 if (HAL_IS_BIT_SET(hadc->Instance->CR2, ADC_CR2_EOCS) && in HAL_ADC_PollForConversion()
882 HAL_IS_BIT_SET(hadc->Instance->CR2, ADC_CR2_DMA) ) in HAL_ADC_PollForConversion()
885 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); in HAL_ADC_PollForConversion()
888 __HAL_UNLOCK(hadc); in HAL_ADC_PollForConversion()
897 while(!(__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_EOC))) in HAL_ADC_PollForConversion()
905 SET_BIT(hadc->State, HAL_ADC_STATE_TIMEOUT); in HAL_ADC_PollForConversion()
908 __HAL_UNLOCK(hadc); in HAL_ADC_PollForConversion()
916 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_STRT | ADC_FLAG_EOC); in HAL_ADC_PollForConversion()
919 SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOC); in HAL_ADC_PollForConversion()
927 if(ADC_IS_SOFTWARE_START_REGULAR(hadc) && in HAL_ADC_PollForConversion()
928 (hadc->Init.ContinuousConvMode == DISABLE) && in HAL_ADC_PollForConversion()
929 (HAL_IS_BIT_CLR(hadc->Instance->SQR1, ADC_SQR1_L) || in HAL_ADC_PollForConversion()
930 HAL_IS_BIT_CLR(hadc->Instance->CR2, ADC_CR2_EOCS) ) ) in HAL_ADC_PollForConversion()
933 CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); in HAL_ADC_PollForConversion()
935 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_INJ_BUSY)) in HAL_ADC_PollForConversion()
937 SET_BIT(hadc->State, HAL_ADC_STATE_READY); in HAL_ADC_PollForConversion()
956 HAL_StatusTypeDef HAL_ADC_PollForEvent(ADC_HandleTypeDef* hadc, uint32_t EventType, uint32_t Timeou… in HAL_ADC_PollForEvent() argument
961 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_PollForEvent()
968 while(!(__HAL_ADC_GET_FLAG(hadc,EventType))) in HAL_ADC_PollForEvent()
976 SET_BIT(hadc->State, HAL_ADC_STATE_TIMEOUT); in HAL_ADC_PollForEvent()
979 __HAL_UNLOCK(hadc); in HAL_ADC_PollForEvent()
990 SET_BIT(hadc->State, HAL_ADC_STATE_AWD1); in HAL_ADC_PollForEvent()
993 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_AWD); in HAL_ADC_PollForEvent()
999 SET_BIT(hadc->State, HAL_ADC_STATE_REG_OVR); in HAL_ADC_PollForEvent()
1001 SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_OVR); in HAL_ADC_PollForEvent()
1004 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_OVR); in HAL_ADC_PollForEvent()
1018 HAL_StatusTypeDef HAL_ADC_Start_IT(ADC_HandleTypeDef* hadc) in HAL_ADC_Start_IT() argument
1023 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode)); in HAL_ADC_Start_IT()
1024 assert_param(IS_ADC_EXT_TRIG_EDGE(hadc->Init.ExternalTrigConvEdge)); in HAL_ADC_Start_IT()
1027 __HAL_LOCK(hadc); in HAL_ADC_Start_IT()
1032 if((hadc->Instance->CR2 & ADC_CR2_ADON) != ADC_CR2_ADON) in HAL_ADC_Start_IT()
1035 __HAL_ADC_ENABLE(hadc); in HAL_ADC_Start_IT()
1047 if(HAL_IS_BIT_SET(hadc->Instance->CR2, ADC_CR2_ADON)) in HAL_ADC_Start_IT()
1052 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Start_IT()
1058 if (READ_BIT(hadc->Instance->CR1, ADC_CR1_JAUTO) != RESET) in HAL_ADC_Start_IT()
1060 ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_INJ_BUSY); in HAL_ADC_Start_IT()
1064 if (HAL_IS_BIT_SET(hadc->State, HAL_ADC_STATE_INJ_BUSY)) in HAL_ADC_Start_IT()
1067 CLEAR_BIT(hadc->ErrorCode, (HAL_ADC_ERROR_OVR | HAL_ADC_ERROR_DMA)); in HAL_ADC_Start_IT()
1072 ADC_CLEAR_ERRORCODE(hadc); in HAL_ADC_Start_IT()
1078 __HAL_UNLOCK(hadc); in HAL_ADC_Start_IT()
1082 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_EOC | ADC_FLAG_OVR); in HAL_ADC_Start_IT()
1085 __HAL_ADC_ENABLE_IT(hadc, (ADC_IT_EOC | ADC_IT_OVR)); in HAL_ADC_Start_IT()
1091 if((hadc->Instance->CR2 & ADC_CR2_EXTEN) == RESET) in HAL_ADC_Start_IT()
1094 hadc->Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART; in HAL_ADC_Start_IT()
1100 if((hadc->Instance == ADC1) && ((hadc->Instance->CR2 & ADC_CR2_EXTEN) == RESET)) in HAL_ADC_Start_IT()
1103 hadc->Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART; in HAL_ADC_Start_IT()
1110 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); in HAL_ADC_Start_IT()
1113 SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); in HAL_ADC_Start_IT()
1129 HAL_StatusTypeDef HAL_ADC_Stop_IT(ADC_HandleTypeDef* hadc) in HAL_ADC_Stop_IT() argument
1132 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_Stop_IT()
1135 __HAL_LOCK(hadc); in HAL_ADC_Stop_IT()
1139 __HAL_ADC_DISABLE(hadc); in HAL_ADC_Stop_IT()
1142 if(HAL_IS_BIT_CLR(hadc->Instance->CR2, ADC_CR2_ADON)) in HAL_ADC_Stop_IT()
1145 __HAL_ADC_DISABLE_IT(hadc, (ADC_IT_EOC | ADC_IT_OVR)); in HAL_ADC_Stop_IT()
1148 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Stop_IT()
1154 __HAL_UNLOCK(hadc); in HAL_ADC_Stop_IT()
1166 void HAL_ADC_IRQHandler(ADC_HandleTypeDef* hadc) in HAL_ADC_IRQHandler() argument
1170 uint32_t tmp_sr = hadc->Instance->SR; in HAL_ADC_IRQHandler()
1171 uint32_t tmp_cr1 = hadc->Instance->CR1; in HAL_ADC_IRQHandler()
1174 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode)); in HAL_ADC_IRQHandler()
1175 assert_param(IS_ADC_REGULAR_LENGTH(hadc->Init.NbrOfConversion)); in HAL_ADC_IRQHandler()
1176 assert_param(IS_ADC_EOCSelection(hadc->Init.EOCSelection)); in HAL_ADC_IRQHandler()
1184 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL)) in HAL_ADC_IRQHandler()
1187 SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOC); in HAL_ADC_IRQHandler()
1196 if(ADC_IS_SOFTWARE_START_REGULAR(hadc) && in HAL_ADC_IRQHandler()
1197 (hadc->Init.ContinuousConvMode == DISABLE) && in HAL_ADC_IRQHandler()
1198 (HAL_IS_BIT_CLR(hadc->Instance->SQR1, ADC_SQR1_L) || in HAL_ADC_IRQHandler()
1199 HAL_IS_BIT_CLR(hadc->Instance->CR2, ADC_CR2_EOCS) ) ) in HAL_ADC_IRQHandler()
1205 __HAL_ADC_DISABLE_IT(hadc, ADC_IT_EOC); in HAL_ADC_IRQHandler()
1208 CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); in HAL_ADC_IRQHandler()
1210 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_INJ_BUSY)) in HAL_ADC_IRQHandler()
1212 SET_BIT(hadc->State, HAL_ADC_STATE_READY); in HAL_ADC_IRQHandler()
1218 hadc->ConvCpltCallback(hadc); in HAL_ADC_IRQHandler()
1220 HAL_ADC_ConvCpltCallback(hadc); in HAL_ADC_IRQHandler()
1224 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_STRT | ADC_FLAG_EOC); in HAL_ADC_IRQHandler()
1233 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL)) in HAL_ADC_IRQHandler()
1236 SET_BIT(hadc->State, HAL_ADC_STATE_INJ_EOC); in HAL_ADC_IRQHandler()
1243 if(ADC_IS_SOFTWARE_START_INJECTED(hadc) && in HAL_ADC_IRQHandler()
1244 (HAL_IS_BIT_CLR(hadc->Instance->JSQR, ADC_JSQR_JL) || in HAL_ADC_IRQHandler()
1245 HAL_IS_BIT_CLR(hadc->Instance->CR2, ADC_CR2_EOCS) ) && in HAL_ADC_IRQHandler()
1246 (HAL_IS_BIT_CLR(hadc->Instance->CR1, ADC_CR1_JAUTO) && in HAL_ADC_IRQHandler()
1247 (ADC_IS_SOFTWARE_START_REGULAR(hadc) && in HAL_ADC_IRQHandler()
1248 (hadc->Init.ContinuousConvMode == DISABLE) ) ) ) in HAL_ADC_IRQHandler()
1251 __HAL_ADC_DISABLE_IT(hadc, ADC_IT_JEOC); in HAL_ADC_IRQHandler()
1254 CLEAR_BIT(hadc->State, HAL_ADC_STATE_INJ_BUSY); in HAL_ADC_IRQHandler()
1256 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_REG_BUSY)) in HAL_ADC_IRQHandler()
1258 SET_BIT(hadc->State, HAL_ADC_STATE_READY); in HAL_ADC_IRQHandler()
1264 hadc->InjectedConvCpltCallback(hadc); in HAL_ADC_IRQHandler()
1266 HAL_ADCEx_InjectedConvCpltCallback(hadc); in HAL_ADC_IRQHandler()
1270 __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_JSTRT | ADC_FLAG_JEOC)); in HAL_ADC_IRQHandler()
1278 if(__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_AWD)) in HAL_ADC_IRQHandler()
1281 SET_BIT(hadc->State, HAL_ADC_STATE_AWD1); in HAL_ADC_IRQHandler()
1285 hadc->LevelOutOfWindowCallback(hadc); in HAL_ADC_IRQHandler()
1287 HAL_ADC_LevelOutOfWindowCallback(hadc); in HAL_ADC_IRQHandler()
1291 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_AWD); in HAL_ADC_IRQHandler()
1305 SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_OVR); in HAL_ADC_IRQHandler()
1308 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_OVR); in HAL_ADC_IRQHandler()
1312 hadc->ErrorCallback(hadc); in HAL_ADC_IRQHandler()
1314 HAL_ADC_ErrorCallback(hadc); in HAL_ADC_IRQHandler()
1318 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_OVR); in HAL_ADC_IRQHandler()
1330 HAL_StatusTypeDef HAL_ADC_Start_DMA(ADC_HandleTypeDef* hadc, uint32_t* pData, uint32_t Length) in HAL_ADC_Start_DMA() argument
1335 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode)); in HAL_ADC_Start_DMA()
1336 assert_param(IS_ADC_EXT_TRIG_EDGE(hadc->Init.ExternalTrigConvEdge)); in HAL_ADC_Start_DMA()
1339 __HAL_LOCK(hadc); in HAL_ADC_Start_DMA()
1344 if((hadc->Instance->CR2 & ADC_CR2_ADON) != ADC_CR2_ADON) in HAL_ADC_Start_DMA()
1347 __HAL_ADC_ENABLE(hadc); in HAL_ADC_Start_DMA()
1359 if(HAL_IS_BIT_SET(hadc->Instance->CR2, ADC_CR2_ADON)) in HAL_ADC_Start_DMA()
1364 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Start_DMA()
1370 if (READ_BIT(hadc->Instance->CR1, ADC_CR1_JAUTO) != RESET) in HAL_ADC_Start_DMA()
1372 ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_INJ_BUSY); in HAL_ADC_Start_DMA()
1376 if (HAL_IS_BIT_SET(hadc->State, HAL_ADC_STATE_INJ_BUSY)) in HAL_ADC_Start_DMA()
1379 CLEAR_BIT(hadc->ErrorCode, (HAL_ADC_ERROR_OVR | HAL_ADC_ERROR_DMA)); in HAL_ADC_Start_DMA()
1384 ADC_CLEAR_ERRORCODE(hadc); in HAL_ADC_Start_DMA()
1390 __HAL_UNLOCK(hadc); in HAL_ADC_Start_DMA()
1393 hadc->DMA_Handle->XferCpltCallback = ADC_DMAConvCplt; in HAL_ADC_Start_DMA()
1396 hadc->DMA_Handle->XferHalfCpltCallback = ADC_DMAHalfConvCplt; in HAL_ADC_Start_DMA()
1399 hadc->DMA_Handle->XferErrorCallback = ADC_DMAError; in HAL_ADC_Start_DMA()
1407 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_EOC | ADC_FLAG_OVR); in HAL_ADC_Start_DMA()
1410 __HAL_ADC_ENABLE_IT(hadc, ADC_IT_OVR); in HAL_ADC_Start_DMA()
1413 hadc->Instance->CR2 |= ADC_CR2_DMA; in HAL_ADC_Start_DMA()
1416 HAL_DMA_Start_IT(hadc->DMA_Handle, (uint32_t)&hadc->Instance->DR, (uint32_t)pData, Length); in HAL_ADC_Start_DMA()
1422 if((hadc->Instance->CR2 & ADC_CR2_EXTEN) == RESET) in HAL_ADC_Start_DMA()
1425 hadc->Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART; in HAL_ADC_Start_DMA()
1431 if((hadc->Instance == ADC1) && ((hadc->Instance->CR2 & ADC_CR2_EXTEN) == RESET)) in HAL_ADC_Start_DMA()
1434 hadc->Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART; in HAL_ADC_Start_DMA()
1441 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); in HAL_ADC_Start_DMA()
1444 SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); in HAL_ADC_Start_DMA()
1457 HAL_StatusTypeDef HAL_ADC_Stop_DMA(ADC_HandleTypeDef* hadc) in HAL_ADC_Stop_DMA() argument
1462 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_Stop_DMA()
1465 __HAL_LOCK(hadc); in HAL_ADC_Stop_DMA()
1469 __HAL_ADC_DISABLE(hadc); in HAL_ADC_Stop_DMA()
1472 if(HAL_IS_BIT_CLR(hadc->Instance->CR2, ADC_CR2_ADON)) in HAL_ADC_Stop_DMA()
1475 hadc->Instance->CR2 &= ~ADC_CR2_DMA; in HAL_ADC_Stop_DMA()
1479 if (hadc->DMA_Handle->State == HAL_DMA_STATE_BUSY) in HAL_ADC_Stop_DMA()
1481 tmp_hal_status = HAL_DMA_Abort(hadc->DMA_Handle); in HAL_ADC_Stop_DMA()
1484 __HAL_ADC_DISABLE_IT(hadc, ADC_IT_OVR); in HAL_ADC_Stop_DMA()
1487 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Stop_DMA()
1494 __HAL_UNLOCK(hadc); in HAL_ADC_Stop_DMA()
1506 uint32_t HAL_ADC_GetValue(ADC_HandleTypeDef* hadc) in HAL_ADC_GetValue() argument
1509 return hadc->Instance->DR; in HAL_ADC_GetValue()
1518 __weak void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc) in HAL_ADC_ConvCpltCallback() argument
1521 UNUSED(hadc); in HAL_ADC_ConvCpltCallback()
1533 __weak void HAL_ADC_ConvHalfCpltCallback(ADC_HandleTypeDef* hadc) in HAL_ADC_ConvHalfCpltCallback() argument
1536 UNUSED(hadc); in HAL_ADC_ConvHalfCpltCallback()
1548 __weak void HAL_ADC_LevelOutOfWindowCallback(ADC_HandleTypeDef* hadc) in HAL_ADC_LevelOutOfWindowCallback() argument
1551 UNUSED(hadc); in HAL_ADC_LevelOutOfWindowCallback()
1569 __weak void HAL_ADC_ErrorCallback(ADC_HandleTypeDef *hadc) in HAL_ADC_ErrorCallback() argument
1572 UNUSED(hadc); in HAL_ADC_ErrorCallback()
1607 HAL_StatusTypeDef HAL_ADC_ConfigChannel(ADC_HandleTypeDef* hadc, ADC_ChannelConfTypeDef* sConfig) in HAL_ADC_ConfigChannel() argument
1617 __HAL_LOCK(hadc); in HAL_ADC_ConfigChannel()
1623 hadc->Instance->SMPR1 &= ~ADC_SMPR1(ADC_SMPR1_SMP10, sConfig->Channel); in HAL_ADC_ConfigChannel()
1626 hadc->Instance->SMPR1 |= ADC_SMPR1(sConfig->SamplingTime, sConfig->Channel); in HAL_ADC_ConfigChannel()
1631 hadc->Instance->SMPR2 &= ~ADC_SMPR2(ADC_SMPR2_SMP0, sConfig->Channel); in HAL_ADC_ConfigChannel()
1634 hadc->Instance->SMPR2 |= ADC_SMPR2(sConfig->SamplingTime, sConfig->Channel); in HAL_ADC_ConfigChannel()
1641 hadc->Instance->SQR3 &= ~ADC_SQR3_RK(ADC_SQR3_SQ1, sConfig->Rank); in HAL_ADC_ConfigChannel()
1644 hadc->Instance->SQR3 |= ADC_SQR3_RK(sConfig->Channel, sConfig->Rank); in HAL_ADC_ConfigChannel()
1650 hadc->Instance->SQR2 &= ~ADC_SQR2_RK(ADC_SQR2_SQ7, sConfig->Rank); in HAL_ADC_ConfigChannel()
1653 hadc->Instance->SQR2 |= ADC_SQR2_RK(sConfig->Channel, sConfig->Rank); in HAL_ADC_ConfigChannel()
1659 hadc->Instance->SQR1 &= ~ADC_SQR1_RK(ADC_SQR1_SQ13, sConfig->Rank); in HAL_ADC_ConfigChannel()
1662 hadc->Instance->SQR1 |= ADC_SQR1_RK(sConfig->Channel, sConfig->Rank); in HAL_ADC_ConfigChannel()
1666 if ((hadc->Instance == ADC1) && (sConfig->Channel == ADC_CHANNEL_VBAT)) in HAL_ADC_ConfigChannel()
1673 …if ((hadc->Instance == ADC1) && ((sConfig->Channel == ADC_CHANNEL_TEMPSENSOR) || (sConfig->Channel… in HAL_ADC_ConfigChannel()
1691 __HAL_UNLOCK(hadc); in HAL_ADC_ConfigChannel()
1713 HAL_StatusTypeDef HAL_ADC_AnalogWDGConfig(ADC_HandleTypeDef* hadc, ADC_AnalogWDGConfTypeDef* Analog… in HAL_ADC_AnalogWDGConfig() argument
1725 tmp = ADC_GET_RESOLUTION(hadc); in HAL_ADC_AnalogWDGConfig()
1731 __HAL_LOCK(hadc); in HAL_ADC_AnalogWDGConfig()
1736 __HAL_ADC_ENABLE_IT(hadc, ADC_IT_AWD); in HAL_ADC_AnalogWDGConfig()
1741 __HAL_ADC_DISABLE_IT(hadc, ADC_IT_AWD); in HAL_ADC_AnalogWDGConfig()
1745 hadc->Instance->CR1 &= ~(ADC_CR1_AWDSGL | ADC_CR1_JAWDEN | ADC_CR1_AWDEN); in HAL_ADC_AnalogWDGConfig()
1748 hadc->Instance->CR1 |= AnalogWDGConfig->WatchdogMode; in HAL_ADC_AnalogWDGConfig()
1751 hadc->Instance->HTR = AnalogWDGConfig->HighThreshold; in HAL_ADC_AnalogWDGConfig()
1754 hadc->Instance->LTR = AnalogWDGConfig->LowThreshold; in HAL_ADC_AnalogWDGConfig()
1757 hadc->Instance->CR1 &= ~ADC_CR1_AWDCH; in HAL_ADC_AnalogWDGConfig()
1760 hadc->Instance->CR1 |= (uint32_t)((uint16_t)(AnalogWDGConfig->Channel)); in HAL_ADC_AnalogWDGConfig()
1763 __HAL_UNLOCK(hadc); in HAL_ADC_AnalogWDGConfig()
1795 uint32_t HAL_ADC_GetState(ADC_HandleTypeDef* hadc) in HAL_ADC_GetState() argument
1798 return hadc->State; in HAL_ADC_GetState()
1807 uint32_t HAL_ADC_GetError(ADC_HandleTypeDef *hadc) in HAL_ADC_GetError() argument
1809 return hadc->ErrorCode; in HAL_ADC_GetError()
1827 static void ADC_Init(ADC_HandleTypeDef* hadc) in ADC_Init() argument
1832 ADC->CCR |= hadc->Init.ClockPrescaler; in ADC_Init()
1835 hadc->Instance->CR1 &= ~(ADC_CR1_SCAN); in ADC_Init()
1836 hadc->Instance->CR1 |= ADC_CR1_SCANCONV(hadc->Init.ScanConvMode); in ADC_Init()
1839 hadc->Instance->CR1 &= ~(ADC_CR1_RES); in ADC_Init()
1840 hadc->Instance->CR1 |= hadc->Init.Resolution; in ADC_Init()
1843 hadc->Instance->CR2 &= ~(ADC_CR2_ALIGN); in ADC_Init()
1844 hadc->Instance->CR2 |= hadc->Init.DataAlign; in ADC_Init()
1851 if(hadc->Init.ExternalTrigConv != ADC_SOFTWARE_START) in ADC_Init()
1854 hadc->Instance->CR2 &= ~(ADC_CR2_EXTSEL); in ADC_Init()
1855 hadc->Instance->CR2 |= hadc->Init.ExternalTrigConv; in ADC_Init()
1858 hadc->Instance->CR2 &= ~(ADC_CR2_EXTEN); in ADC_Init()
1859 hadc->Instance->CR2 |= hadc->Init.ExternalTrigConvEdge; in ADC_Init()
1864 hadc->Instance->CR2 &= ~(ADC_CR2_EXTSEL); in ADC_Init()
1865 hadc->Instance->CR2 &= ~(ADC_CR2_EXTEN); in ADC_Init()
1869 hadc->Instance->CR2 &= ~(ADC_CR2_CONT); in ADC_Init()
1870 hadc->Instance->CR2 |= ADC_CR2_CONTINUOUS((uint32_t)hadc->Init.ContinuousConvMode); in ADC_Init()
1872 if(hadc->Init.DiscontinuousConvMode != DISABLE) in ADC_Init()
1874 assert_param(IS_ADC_REGULAR_DISC_NUMBER(hadc->Init.NbrOfDiscConversion)); in ADC_Init()
1877 hadc->Instance->CR1 |= (uint32_t)ADC_CR1_DISCEN; in ADC_Init()
1880 hadc->Instance->CR1 &= ~(ADC_CR1_DISCNUM); in ADC_Init()
1881 hadc->Instance->CR1 |= ADC_CR1_DISCONTINUOUS(hadc->Init.NbrOfDiscConversion); in ADC_Init()
1886 hadc->Instance->CR1 &= ~(ADC_CR1_DISCEN); in ADC_Init()
1890 hadc->Instance->SQR1 &= ~(ADC_SQR1_L); in ADC_Init()
1891 hadc->Instance->SQR1 |= ADC_SQR1(hadc->Init.NbrOfConversion); in ADC_Init()
1894 hadc->Instance->CR2 &= ~(ADC_CR2_DDS); in ADC_Init()
1895 hadc->Instance->CR2 |= ADC_CR2_DMAContReq((uint32_t)hadc->Init.DMAContinuousRequests); in ADC_Init()
1898 hadc->Instance->CR2 &= ~(ADC_CR2_EOCS); in ADC_Init()
1899 hadc->Instance->CR2 |= ADC_CR2_EOCSelection(hadc->Init.EOCSelection); in ADC_Init()
1911 ADC_HandleTypeDef* hadc = ( ADC_HandleTypeDef* )((DMA_HandleTypeDef* )hdma)->Parent; in ADC_DMAConvCplt() local
1914 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL | HAL_ADC_STATE_ERROR_DMA)) in ADC_DMAConvCplt()
1917 SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOC); in ADC_DMAConvCplt()
1925 if(ADC_IS_SOFTWARE_START_REGULAR(hadc) && in ADC_DMAConvCplt()
1926 (hadc->Init.ContinuousConvMode == DISABLE) && in ADC_DMAConvCplt()
1927 (HAL_IS_BIT_CLR(hadc->Instance->SQR1, ADC_SQR1_L) || in ADC_DMAConvCplt()
1928 HAL_IS_BIT_CLR(hadc->Instance->CR2, ADC_CR2_EOCS) ) ) in ADC_DMAConvCplt()
1934 __HAL_ADC_DISABLE_IT(hadc, ADC_IT_EOC); in ADC_DMAConvCplt()
1937 CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); in ADC_DMAConvCplt()
1939 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_INJ_BUSY)) in ADC_DMAConvCplt()
1941 SET_BIT(hadc->State, HAL_ADC_STATE_READY); in ADC_DMAConvCplt()
1947 hadc->ConvCpltCallback(hadc); in ADC_DMAConvCplt()
1949 HAL_ADC_ConvCpltCallback(hadc); in ADC_DMAConvCplt()
1954 if ((hadc->State & HAL_ADC_STATE_ERROR_INTERNAL) != 0UL) in ADC_DMAConvCplt()
1958 hadc->ErrorCallback(hadc); in ADC_DMAConvCplt()
1960 HAL_ADC_ErrorCallback(hadc); in ADC_DMAConvCplt()
1966 hadc->DMA_Handle->XferErrorCallback(hdma); in ADC_DMAConvCplt()
1979 ADC_HandleTypeDef* hadc = ( ADC_HandleTypeDef* )((DMA_HandleTypeDef* )hdma)->Parent; in ADC_DMAHalfConvCplt() local
1983 hadc->ConvHalfCpltCallback(hadc); in ADC_DMAHalfConvCplt()
1985 HAL_ADC_ConvHalfCpltCallback(hadc); in ADC_DMAHalfConvCplt()
1997 ADC_HandleTypeDef* hadc = ( ADC_HandleTypeDef* )((DMA_HandleTypeDef* )hdma)->Parent; in ADC_DMAError() local
1998 hadc->State= HAL_ADC_STATE_ERROR_DMA; in ADC_DMAError()
2000 hadc->ErrorCode |= HAL_ADC_ERROR_DMA; in ADC_DMAError()
2003 hadc->ErrorCallback(hadc); in ADC_DMAError()
2005 HAL_ADC_ErrorCallback(hadc); in ADC_DMAError()