Lines Matching refs:hadc

279 static void ADC_Init(ADC_HandleTypeDef* hadc);
322 HAL_StatusTypeDef HAL_ADC_Init(ADC_HandleTypeDef* hadc) in HAL_ADC_Init() argument
327 if(hadc == NULL) in HAL_ADC_Init()
333 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_Init()
334 assert_param(IS_ADC_CLOCKPRESCALER(hadc->Init.ClockPrescaler)); in HAL_ADC_Init()
335 assert_param(IS_ADC_RESOLUTION(hadc->Init.Resolution)); in HAL_ADC_Init()
336 assert_param(IS_ADC_SCAN_MODE(hadc->Init.ScanConvMode)); in HAL_ADC_Init()
337 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode)); in HAL_ADC_Init()
338 assert_param(IS_ADC_EXT_TRIG(hadc->Init.ExternalTrigConv)); in HAL_ADC_Init()
339 assert_param(IS_ADC_DATA_ALIGN(hadc->Init.DataAlign)); in HAL_ADC_Init()
340 assert_param(IS_ADC_REGULAR_LENGTH(hadc->Init.NbrOfConversion)); in HAL_ADC_Init()
341 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.DMAContinuousRequests)); in HAL_ADC_Init()
342 assert_param(IS_ADC_EOCSelection(hadc->Init.EOCSelection)); in HAL_ADC_Init()
343 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.DiscontinuousConvMode)); in HAL_ADC_Init()
345 if(hadc->Init.ExternalTrigConv != ADC_SOFTWARE_START) in HAL_ADC_Init()
347 assert_param(IS_ADC_EXT_TRIG_EDGE(hadc->Init.ExternalTrigConvEdge)); in HAL_ADC_Init()
350 if(hadc->State == HAL_ADC_STATE_RESET) in HAL_ADC_Init()
354hadc->ConvCpltCallback = HAL_ADC_ConvCpltCallback; /* Legacy weak cal… in HAL_ADC_Init()
355hadc->ConvHalfCpltCallback = HAL_ADC_ConvHalfCpltCallback; /* Legacy weak cal… in HAL_ADC_Init()
356hadc->LevelOutOfWindowCallback = HAL_ADC_LevelOutOfWindowCallback; /* Legacy weak cal… in HAL_ADC_Init()
357hadc->ErrorCallback = HAL_ADC_ErrorCallback; /* Legacy weak cal… in HAL_ADC_Init()
358hadc->InjectedConvCpltCallback = HAL_ADCEx_InjectedConvCpltCallback; /* Legacy weak cal… in HAL_ADC_Init()
359 if (hadc->MspInitCallback == NULL) in HAL_ADC_Init()
361 hadc->MspInitCallback = HAL_ADC_MspInit; /* Legacy weak MspInit */ in HAL_ADC_Init()
365 hadc->MspInitCallback(hadc); in HAL_ADC_Init()
368 HAL_ADC_MspInit(hadc); in HAL_ADC_Init()
372 ADC_CLEAR_ERRORCODE(hadc); in HAL_ADC_Init()
375 hadc->Lock = HAL_UNLOCKED; in HAL_ADC_Init()
380 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL)) in HAL_ADC_Init()
383 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Init()
388 ADC_Init(hadc); in HAL_ADC_Init()
391 ADC_CLEAR_ERRORCODE(hadc); in HAL_ADC_Init()
394 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Init()
404 __HAL_UNLOCK(hadc); in HAL_ADC_Init()
416 HAL_StatusTypeDef HAL_ADC_DeInit(ADC_HandleTypeDef* hadc) in HAL_ADC_DeInit() argument
421 if(hadc == NULL) in HAL_ADC_DeInit()
427 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_DeInit()
430 SET_BIT(hadc->State, HAL_ADC_STATE_BUSY_INTERNAL); in HAL_ADC_DeInit()
434 __HAL_ADC_DISABLE(hadc); in HAL_ADC_DeInit()
438 if(HAL_IS_BIT_CLR(hadc->Instance->CR2, ADC_CR2_ADON)) in HAL_ADC_DeInit()
441 if (hadc->MspDeInitCallback == NULL) in HAL_ADC_DeInit()
443 hadc->MspDeInitCallback = HAL_ADC_MspDeInit; /* Legacy weak MspDeInit */ in HAL_ADC_DeInit()
447 hadc->MspDeInitCallback(hadc); in HAL_ADC_DeInit()
450 HAL_ADC_MspDeInit(hadc); in HAL_ADC_DeInit()
454 ADC_CLEAR_ERRORCODE(hadc); in HAL_ADC_DeInit()
457 hadc->State = HAL_ADC_STATE_RESET; in HAL_ADC_DeInit()
461 __HAL_UNLOCK(hadc); in HAL_ADC_DeInit()
473 __weak void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc) in HAL_ADC_MspInit() argument
476 UNUSED(hadc); in HAL_ADC_MspInit()
488 __weak void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc) in HAL_ADC_MspDeInit() argument
491 UNUSED(hadc); in HAL_ADC_MspDeInit()
516 HAL_StatusTypeDef HAL_ADC_RegisterCallback(ADC_HandleTypeDef *hadc, HAL_ADC_CallbackIDTypeDef Callb… in HAL_ADC_RegisterCallback() argument
523 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_RegisterCallback()
528 if ((hadc->State & HAL_ADC_STATE_READY) != 0UL) in HAL_ADC_RegisterCallback()
533 hadc->ConvCpltCallback = pCallback; in HAL_ADC_RegisterCallback()
537 hadc->ConvHalfCpltCallback = pCallback; in HAL_ADC_RegisterCallback()
541 hadc->LevelOutOfWindowCallback = pCallback; in HAL_ADC_RegisterCallback()
545 hadc->ErrorCallback = pCallback; in HAL_ADC_RegisterCallback()
549 hadc->InjectedConvCpltCallback = pCallback; in HAL_ADC_RegisterCallback()
553 hadc->MspInitCallback = pCallback; in HAL_ADC_RegisterCallback()
557 hadc->MspDeInitCallback = pCallback; in HAL_ADC_RegisterCallback()
562 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_RegisterCallback()
569 else if (HAL_ADC_STATE_RESET == hadc->State) in HAL_ADC_RegisterCallback()
574 hadc->MspInitCallback = pCallback; in HAL_ADC_RegisterCallback()
578 hadc->MspDeInitCallback = pCallback; in HAL_ADC_RegisterCallback()
583 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_RegisterCallback()
593 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_RegisterCallback()
619 HAL_StatusTypeDef HAL_ADC_UnRegisterCallback(ADC_HandleTypeDef *hadc, HAL_ADC_CallbackIDTypeDef Cal… in HAL_ADC_UnRegisterCallback() argument
623 if ((hadc->State & HAL_ADC_STATE_READY) != 0UL) in HAL_ADC_UnRegisterCallback()
628 hadc->ConvCpltCallback = HAL_ADC_ConvCpltCallback; in HAL_ADC_UnRegisterCallback()
632 hadc->ConvHalfCpltCallback = HAL_ADC_ConvHalfCpltCallback; in HAL_ADC_UnRegisterCallback()
636 hadc->LevelOutOfWindowCallback = HAL_ADC_LevelOutOfWindowCallback; in HAL_ADC_UnRegisterCallback()
640 hadc->ErrorCallback = HAL_ADC_ErrorCallback; in HAL_ADC_UnRegisterCallback()
644 hadc->InjectedConvCpltCallback = HAL_ADCEx_InjectedConvCpltCallback; in HAL_ADC_UnRegisterCallback()
648 hadc->MspInitCallback = HAL_ADC_MspInit; /* Legacy weak MspInit */ in HAL_ADC_UnRegisterCallback()
652 hadc->MspDeInitCallback = HAL_ADC_MspDeInit; /* Legacy weak MspDeInit */ in HAL_ADC_UnRegisterCallback()
657 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_UnRegisterCallback()
664 else if (HAL_ADC_STATE_RESET == hadc->State) in HAL_ADC_UnRegisterCallback()
669hadc->MspInitCallback = HAL_ADC_MspInit; /* Legacy weak MspInit */ in HAL_ADC_UnRegisterCallback()
673hadc->MspDeInitCallback = HAL_ADC_MspDeInit; /* Legacy weak MspDeInit */ in HAL_ADC_UnRegisterCallback()
678 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_UnRegisterCallback()
688 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_UnRegisterCallback()
730 HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef* hadc) in HAL_ADC_Start() argument
735 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode)); in HAL_ADC_Start()
736 assert_param(IS_ADC_EXT_TRIG_EDGE(hadc->Init.ExternalTrigConvEdge)); in HAL_ADC_Start()
739 __HAL_LOCK(hadc); in HAL_ADC_Start()
744 if((hadc->Instance->CR2 & ADC_CR2_ADON) != ADC_CR2_ADON) in HAL_ADC_Start()
747 __HAL_ADC_ENABLE(hadc); in HAL_ADC_Start()
759 if(HAL_IS_BIT_SET(hadc->Instance->CR2, ADC_CR2_ADON)) in HAL_ADC_Start()
764 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Start()
770 if (READ_BIT(hadc->Instance->CR1, ADC_CR1_JAUTO) != RESET) in HAL_ADC_Start()
772 ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_INJ_BUSY); in HAL_ADC_Start()
776 if (HAL_IS_BIT_SET(hadc->State, HAL_ADC_STATE_INJ_BUSY)) in HAL_ADC_Start()
779 CLEAR_BIT(hadc->ErrorCode, (HAL_ADC_ERROR_OVR | HAL_ADC_ERROR_DMA)); in HAL_ADC_Start()
784 ADC_CLEAR_ERRORCODE(hadc); in HAL_ADC_Start()
790 __HAL_UNLOCK(hadc); in HAL_ADC_Start()
794 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_EOC | ADC_FLAG_OVR); in HAL_ADC_Start()
800 if((hadc->Instance->CR2 & ADC_CR2_EXTEN) == RESET) in HAL_ADC_Start()
803 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()
820 if((hadc->Instance == ADC3) && ((hadc->Instance->CR2 & ADC_CR2_EXTEN) == RESET)) in HAL_ADC_Start()
823 hadc->Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART; in HAL_ADC_Start()
831 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); in HAL_ADC_Start()
834 SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); in HAL_ADC_Start()
851 HAL_StatusTypeDef HAL_ADC_Stop(ADC_HandleTypeDef* hadc) in HAL_ADC_Stop() argument
854 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_Stop()
857 __HAL_LOCK(hadc); in HAL_ADC_Stop()
861 __HAL_ADC_DISABLE(hadc); in HAL_ADC_Stop()
864 if(HAL_IS_BIT_CLR(hadc->Instance->CR2, ADC_CR2_ADON)) in HAL_ADC_Stop()
867 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Stop()
873 __HAL_UNLOCK(hadc); in HAL_ADC_Stop()
894 HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef* hadc, uint32_t Timeout) in HAL_ADC_PollForConversion() argument
904 if (HAL_IS_BIT_SET(hadc->Instance->CR2, ADC_CR2_EOCS) && in HAL_ADC_PollForConversion()
905 HAL_IS_BIT_SET(hadc->Instance->CR2, ADC_CR2_DMA) ) in HAL_ADC_PollForConversion()
908 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); in HAL_ADC_PollForConversion()
911 __HAL_UNLOCK(hadc); in HAL_ADC_PollForConversion()
920 while(!(__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_EOC))) in HAL_ADC_PollForConversion()
928 if(!(__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_EOC))) in HAL_ADC_PollForConversion()
931 SET_BIT(hadc->State, HAL_ADC_STATE_TIMEOUT); in HAL_ADC_PollForConversion()
934 __HAL_UNLOCK(hadc); in HAL_ADC_PollForConversion()
943 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_STRT | ADC_FLAG_EOC); in HAL_ADC_PollForConversion()
946 SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOC); in HAL_ADC_PollForConversion()
954 if(ADC_IS_SOFTWARE_START_REGULAR(hadc) && in HAL_ADC_PollForConversion()
955 (hadc->Init.ContinuousConvMode == DISABLE) && in HAL_ADC_PollForConversion()
956 (HAL_IS_BIT_CLR(hadc->Instance->SQR1, ADC_SQR1_L) || in HAL_ADC_PollForConversion()
957 HAL_IS_BIT_CLR(hadc->Instance->CR2, ADC_CR2_EOCS) ) ) in HAL_ADC_PollForConversion()
960 CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); in HAL_ADC_PollForConversion()
962 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_INJ_BUSY)) in HAL_ADC_PollForConversion()
964 SET_BIT(hadc->State, HAL_ADC_STATE_READY); in HAL_ADC_PollForConversion()
983 HAL_StatusTypeDef HAL_ADC_PollForEvent(ADC_HandleTypeDef* hadc, uint32_t EventType, uint32_t Timeou… in HAL_ADC_PollForEvent() argument
988 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_PollForEvent()
995 while(!(__HAL_ADC_GET_FLAG(hadc,EventType))) in HAL_ADC_PollForEvent()
1003 if(!(__HAL_ADC_GET_FLAG(hadc,EventType))) in HAL_ADC_PollForEvent()
1006 SET_BIT(hadc->State, HAL_ADC_STATE_TIMEOUT); in HAL_ADC_PollForEvent()
1009 __HAL_UNLOCK(hadc); in HAL_ADC_PollForEvent()
1021 SET_BIT(hadc->State, HAL_ADC_STATE_AWD1); in HAL_ADC_PollForEvent()
1024 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_AWD); in HAL_ADC_PollForEvent()
1030 SET_BIT(hadc->State, HAL_ADC_STATE_REG_OVR); in HAL_ADC_PollForEvent()
1032 SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_OVR); in HAL_ADC_PollForEvent()
1035 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_OVR); in HAL_ADC_PollForEvent()
1049 HAL_StatusTypeDef HAL_ADC_Start_IT(ADC_HandleTypeDef* hadc) in HAL_ADC_Start_IT() argument
1054 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode)); in HAL_ADC_Start_IT()
1055 assert_param(IS_ADC_EXT_TRIG_EDGE(hadc->Init.ExternalTrigConvEdge)); in HAL_ADC_Start_IT()
1058 __HAL_LOCK(hadc); in HAL_ADC_Start_IT()
1063 if((hadc->Instance->CR2 & ADC_CR2_ADON) != ADC_CR2_ADON) in HAL_ADC_Start_IT()
1066 __HAL_ADC_ENABLE(hadc); in HAL_ADC_Start_IT()
1078 if(HAL_IS_BIT_SET(hadc->Instance->CR2, ADC_CR2_ADON)) in HAL_ADC_Start_IT()
1083 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Start_IT()
1089 if (READ_BIT(hadc->Instance->CR1, ADC_CR1_JAUTO) != RESET) in HAL_ADC_Start_IT()
1091 ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_INJ_BUSY); in HAL_ADC_Start_IT()
1095 if (HAL_IS_BIT_SET(hadc->State, HAL_ADC_STATE_INJ_BUSY)) in HAL_ADC_Start_IT()
1098 CLEAR_BIT(hadc->ErrorCode, (HAL_ADC_ERROR_OVR | HAL_ADC_ERROR_DMA)); in HAL_ADC_Start_IT()
1103 ADC_CLEAR_ERRORCODE(hadc); in HAL_ADC_Start_IT()
1109 __HAL_UNLOCK(hadc); in HAL_ADC_Start_IT()
1113 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_EOC | ADC_FLAG_OVR); in HAL_ADC_Start_IT()
1116 __HAL_ADC_ENABLE_IT(hadc, (ADC_IT_EOC | ADC_IT_OVR)); in HAL_ADC_Start_IT()
1122 if((hadc->Instance->CR2 & ADC_CR2_EXTEN) == RESET) in HAL_ADC_Start_IT()
1125 hadc->Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART; in HAL_ADC_Start_IT()
1131 if((hadc->Instance == ADC1) && ((hadc->Instance->CR2 & ADC_CR2_EXTEN) == RESET)) in HAL_ADC_Start_IT()
1134 hadc->Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART; in HAL_ADC_Start_IT()
1142 if((hadc->Instance == ADC3) && ((hadc->Instance->CR2 & ADC_CR2_EXTEN) == RESET)) in HAL_ADC_Start_IT()
1145 hadc->Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART; in HAL_ADC_Start_IT()
1153 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); in HAL_ADC_Start_IT()
1156 SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); in HAL_ADC_Start_IT()
1172 HAL_StatusTypeDef HAL_ADC_Stop_IT(ADC_HandleTypeDef* hadc) in HAL_ADC_Stop_IT() argument
1175 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_Stop_IT()
1178 __HAL_LOCK(hadc); in HAL_ADC_Stop_IT()
1182 __HAL_ADC_DISABLE(hadc); in HAL_ADC_Stop_IT()
1185 if(HAL_IS_BIT_CLR(hadc->Instance->CR2, ADC_CR2_ADON)) in HAL_ADC_Stop_IT()
1188 __HAL_ADC_DISABLE_IT(hadc, (ADC_IT_EOC | ADC_IT_OVR)); in HAL_ADC_Stop_IT()
1191 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Stop_IT()
1197 __HAL_UNLOCK(hadc); in HAL_ADC_Stop_IT()
1209 void HAL_ADC_IRQHandler(ADC_HandleTypeDef* hadc) in HAL_ADC_IRQHandler() argument
1213 uint32_t tmp_sr = hadc->Instance->SR; in HAL_ADC_IRQHandler()
1214 uint32_t tmp_cr1 = hadc->Instance->CR1; in HAL_ADC_IRQHandler()
1217 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode)); in HAL_ADC_IRQHandler()
1218 assert_param(IS_ADC_REGULAR_LENGTH(hadc->Init.NbrOfConversion)); in HAL_ADC_IRQHandler()
1219 assert_param(IS_ADC_EOCSelection(hadc->Init.EOCSelection)); in HAL_ADC_IRQHandler()
1228 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL)) in HAL_ADC_IRQHandler()
1231 SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOC); in HAL_ADC_IRQHandler()
1240 if(ADC_IS_SOFTWARE_START_REGULAR(hadc) && in HAL_ADC_IRQHandler()
1241 (hadc->Init.ContinuousConvMode == DISABLE) && in HAL_ADC_IRQHandler()
1242 (HAL_IS_BIT_CLR(hadc->Instance->SQR1, ADC_SQR1_L) || in HAL_ADC_IRQHandler()
1243 HAL_IS_BIT_CLR(hadc->Instance->CR2, ADC_CR2_EOCS) ) ) in HAL_ADC_IRQHandler()
1249 __HAL_ADC_DISABLE_IT(hadc, ADC_IT_EOC); in HAL_ADC_IRQHandler()
1252 CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); in HAL_ADC_IRQHandler()
1254 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_INJ_BUSY)) in HAL_ADC_IRQHandler()
1256 SET_BIT(hadc->State, HAL_ADC_STATE_READY); in HAL_ADC_IRQHandler()
1262 hadc->ConvCpltCallback(hadc); in HAL_ADC_IRQHandler()
1264 HAL_ADC_ConvCpltCallback(hadc); in HAL_ADC_IRQHandler()
1268 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_STRT | ADC_FLAG_EOC); in HAL_ADC_IRQHandler()
1277 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL)) in HAL_ADC_IRQHandler()
1280 SET_BIT(hadc->State, HAL_ADC_STATE_INJ_EOC); in HAL_ADC_IRQHandler()
1287 if(ADC_IS_SOFTWARE_START_INJECTED(hadc) && in HAL_ADC_IRQHandler()
1288 (HAL_IS_BIT_CLR(hadc->Instance->JSQR, ADC_JSQR_JL) || in HAL_ADC_IRQHandler()
1289 HAL_IS_BIT_CLR(hadc->Instance->CR2, ADC_CR2_EOCS)) && in HAL_ADC_IRQHandler()
1290 (HAL_IS_BIT_CLR(hadc->Instance->CR1, ADC_CR1_JAUTO) && in HAL_ADC_IRQHandler()
1291 (ADC_IS_SOFTWARE_START_REGULAR(hadc) && in HAL_ADC_IRQHandler()
1292 (hadc->Init.ContinuousConvMode == DISABLE)))) in HAL_ADC_IRQHandler()
1295 __HAL_ADC_DISABLE_IT(hadc, ADC_IT_JEOC); in HAL_ADC_IRQHandler()
1298 CLEAR_BIT(hadc->State, HAL_ADC_STATE_INJ_BUSY); in HAL_ADC_IRQHandler()
1300 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_REG_BUSY)) in HAL_ADC_IRQHandler()
1302 SET_BIT(hadc->State, HAL_ADC_STATE_READY); in HAL_ADC_IRQHandler()
1308 hadc->InjectedConvCpltCallback(hadc); in HAL_ADC_IRQHandler()
1310 HAL_ADCEx_InjectedConvCpltCallback(hadc); in HAL_ADC_IRQHandler()
1314 __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_JSTRT | ADC_FLAG_JEOC)); in HAL_ADC_IRQHandler()
1322 if(__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_AWD)) in HAL_ADC_IRQHandler()
1325 SET_BIT(hadc->State, HAL_ADC_STATE_AWD1); in HAL_ADC_IRQHandler()
1329 hadc->LevelOutOfWindowCallback(hadc); in HAL_ADC_IRQHandler()
1331 HAL_ADC_LevelOutOfWindowCallback(hadc); in HAL_ADC_IRQHandler()
1336 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_AWD); in HAL_ADC_IRQHandler()
1350 SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_OVR); in HAL_ADC_IRQHandler()
1353 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_OVR); in HAL_ADC_IRQHandler()
1357 hadc->ErrorCallback(hadc); in HAL_ADC_IRQHandler()
1359 HAL_ADC_ErrorCallback(hadc); in HAL_ADC_IRQHandler()
1363 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_OVR); in HAL_ADC_IRQHandler()
1375 HAL_StatusTypeDef HAL_ADC_Start_DMA(ADC_HandleTypeDef* hadc, uint32_t* pData, uint32_t Length) in HAL_ADC_Start_DMA() argument
1380 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode)); in HAL_ADC_Start_DMA()
1381 assert_param(IS_ADC_EXT_TRIG_EDGE(hadc->Init.ExternalTrigConvEdge)); in HAL_ADC_Start_DMA()
1384 __HAL_LOCK(hadc); in HAL_ADC_Start_DMA()
1389 if((hadc->Instance->CR2 & ADC_CR2_ADON) != ADC_CR2_ADON) in HAL_ADC_Start_DMA()
1392 __HAL_ADC_ENABLE(hadc); in HAL_ADC_Start_DMA()
1404 if(HAL_IS_BIT_SET(hadc->Instance->CR2, ADC_CR2_ADON)) in HAL_ADC_Start_DMA()
1409 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Start_DMA()
1415 if (READ_BIT(hadc->Instance->CR1, ADC_CR1_JAUTO) != RESET) in HAL_ADC_Start_DMA()
1417 ADC_STATE_CLR_SET(hadc->State, HAL_ADC_STATE_INJ_EOC, HAL_ADC_STATE_INJ_BUSY); in HAL_ADC_Start_DMA()
1421 if (HAL_IS_BIT_SET(hadc->State, HAL_ADC_STATE_INJ_BUSY)) in HAL_ADC_Start_DMA()
1424 CLEAR_BIT(hadc->ErrorCode, (HAL_ADC_ERROR_OVR | HAL_ADC_ERROR_DMA)); in HAL_ADC_Start_DMA()
1429 ADC_CLEAR_ERRORCODE(hadc); in HAL_ADC_Start_DMA()
1435 __HAL_UNLOCK(hadc); in HAL_ADC_Start_DMA()
1438 hadc->DMA_Handle->XferCpltCallback = ADC_DMAConvCplt; in HAL_ADC_Start_DMA()
1441 hadc->DMA_Handle->XferHalfCpltCallback = ADC_DMAHalfConvCplt; in HAL_ADC_Start_DMA()
1444 hadc->DMA_Handle->XferErrorCallback = ADC_DMAError; in HAL_ADC_Start_DMA()
1452 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_EOC | ADC_FLAG_OVR); in HAL_ADC_Start_DMA()
1455 __HAL_ADC_ENABLE_IT(hadc, ADC_IT_OVR); in HAL_ADC_Start_DMA()
1458 hadc->Instance->CR2 |= ADC_CR2_DMA; in HAL_ADC_Start_DMA()
1461 HAL_DMA_Start_IT(hadc->DMA_Handle, (uint32_t)&hadc->Instance->DR, (uint32_t)pData, Length); in HAL_ADC_Start_DMA()
1467 if((hadc->Instance->CR2 & ADC_CR2_EXTEN) == RESET) in HAL_ADC_Start_DMA()
1470 hadc->Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART; in HAL_ADC_Start_DMA()
1476 if((hadc->Instance == ADC1) && ((hadc->Instance->CR2 & ADC_CR2_EXTEN) == RESET)) in HAL_ADC_Start_DMA()
1479 hadc->Instance->CR2 |= (uint32_t)ADC_CR2_SWSTART; in HAL_ADC_Start_DMA()
1486 if((hadc->Instance == ADC3) && ((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()
1497 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); in HAL_ADC_Start_DMA()
1500 SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); in HAL_ADC_Start_DMA()
1513 HAL_StatusTypeDef HAL_ADC_Stop_DMA(ADC_HandleTypeDef* hadc) in HAL_ADC_Stop_DMA() argument
1518 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_Stop_DMA()
1521 __HAL_LOCK(hadc); in HAL_ADC_Stop_DMA()
1525 __HAL_ADC_DISABLE(hadc); in HAL_ADC_Stop_DMA()
1528 if(HAL_IS_BIT_CLR(hadc->Instance->CR2, ADC_CR2_ADON)) in HAL_ADC_Stop_DMA()
1531 hadc->Instance->CR2 &= ~ADC_CR2_DMA; in HAL_ADC_Stop_DMA()
1535 if (hadc->DMA_Handle->State == HAL_DMA_STATE_BUSY) in HAL_ADC_Stop_DMA()
1537 tmp_hal_status = HAL_DMA_Abort(hadc->DMA_Handle); in HAL_ADC_Stop_DMA()
1543 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_DMA); in HAL_ADC_Stop_DMA()
1548 __HAL_ADC_DISABLE_IT(hadc, ADC_IT_OVR); in HAL_ADC_Stop_DMA()
1551 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Stop_DMA()
1557 __HAL_UNLOCK(hadc); in HAL_ADC_Stop_DMA()
1569 uint32_t HAL_ADC_GetValue(ADC_HandleTypeDef* hadc) in HAL_ADC_GetValue() argument
1572 return hadc->Instance->DR; in HAL_ADC_GetValue()
1581 __weak void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc) in HAL_ADC_ConvCpltCallback() argument
1584 UNUSED(hadc); in HAL_ADC_ConvCpltCallback()
1596 __weak void HAL_ADC_ConvHalfCpltCallback(ADC_HandleTypeDef* hadc) in HAL_ADC_ConvHalfCpltCallback() argument
1599 UNUSED(hadc); in HAL_ADC_ConvHalfCpltCallback()
1611 __weak void HAL_ADC_LevelOutOfWindowCallback(ADC_HandleTypeDef* hadc) in HAL_ADC_LevelOutOfWindowCallback() argument
1614 UNUSED(hadc); in HAL_ADC_LevelOutOfWindowCallback()
1632 __weak void HAL_ADC_ErrorCallback(ADC_HandleTypeDef *hadc) in HAL_ADC_ErrorCallback() argument
1635 UNUSED(hadc); in HAL_ADC_ErrorCallback()
1670 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()
1691 hadc->Instance->SMPR1 |= ADC_SMPR1(sConfig->SamplingTime, ADC_CHANNEL_18); in HAL_ADC_ConfigChannel()
1696 hadc->Instance->SMPR1 |= ADC_SMPR1(sConfig->SamplingTime, sConfig->Channel); in HAL_ADC_ConfigChannel()
1702 hadc->Instance->SMPR2 &= ~ADC_SMPR2(ADC_SMPR2_SMP0, sConfig->Channel); in HAL_ADC_ConfigChannel()
1705 hadc->Instance->SMPR2 |= ADC_SMPR2(sConfig->SamplingTime, sConfig->Channel); in HAL_ADC_ConfigChannel()
1712 hadc->Instance->SQR3 &= ~ADC_SQR3_RK(ADC_SQR3_SQ1, sConfig->Rank); in HAL_ADC_ConfigChannel()
1715 hadc->Instance->SQR3 |= ADC_SQR3_RK(sConfig->Channel, sConfig->Rank); in HAL_ADC_ConfigChannel()
1721 hadc->Instance->SQR2 &= ~ADC_SQR2_RK(ADC_SQR2_SQ7, sConfig->Rank); in HAL_ADC_ConfigChannel()
1724 hadc->Instance->SQR2 |= ADC_SQR2_RK(sConfig->Channel, sConfig->Rank); in HAL_ADC_ConfigChannel()
1730 hadc->Instance->SQR1 &= ~ADC_SQR1_RK(ADC_SQR1_SQ13, sConfig->Rank); in HAL_ADC_ConfigChannel()
1733 hadc->Instance->SQR1 |= ADC_SQR1_RK(sConfig->Channel, sConfig->Rank); in HAL_ADC_ConfigChannel()
1737 if ((hadc->Instance == ADC1) && (sConfig->Channel == ADC_INTERNAL_NONE)) in HAL_ADC_ConfigChannel()
1744 if ((hadc->Instance == ADC1) && (sConfig->Channel == ADC_CHANNEL_VBAT)) in HAL_ADC_ConfigChannel()
1754 …if ((hadc->Instance == ADC1) && ((sConfig->Channel == ADC_CHANNEL_TEMPSENSOR) || (sConfig->Channel… in HAL_ADC_ConfigChannel()
1775 __HAL_UNLOCK(hadc); in HAL_ADC_ConfigChannel()
1797 HAL_StatusTypeDef HAL_ADC_AnalogWDGConfig(ADC_HandleTypeDef* hadc, ADC_AnalogWDGConfTypeDef* Analog… in HAL_ADC_AnalogWDGConfig() argument
1809 tmp = ADC_GET_RESOLUTION(hadc); in HAL_ADC_AnalogWDGConfig()
1815 __HAL_LOCK(hadc); in HAL_ADC_AnalogWDGConfig()
1820 __HAL_ADC_ENABLE_IT(hadc, ADC_IT_AWD); in HAL_ADC_AnalogWDGConfig()
1825 __HAL_ADC_DISABLE_IT(hadc, ADC_IT_AWD); in HAL_ADC_AnalogWDGConfig()
1829 hadc->Instance->CR1 &= ~(ADC_CR1_AWDSGL | ADC_CR1_JAWDEN | ADC_CR1_AWDEN); in HAL_ADC_AnalogWDGConfig()
1832 hadc->Instance->CR1 |= AnalogWDGConfig->WatchdogMode; in HAL_ADC_AnalogWDGConfig()
1835 hadc->Instance->HTR = AnalogWDGConfig->HighThreshold; in HAL_ADC_AnalogWDGConfig()
1838 hadc->Instance->LTR = AnalogWDGConfig->LowThreshold; in HAL_ADC_AnalogWDGConfig()
1841 hadc->Instance->CR1 &= ~ADC_CR1_AWDCH; in HAL_ADC_AnalogWDGConfig()
1844 hadc->Instance->CR1 |= (uint32_t)((uint16_t)(AnalogWDGConfig->Channel)); in HAL_ADC_AnalogWDGConfig()
1847 __HAL_UNLOCK(hadc); in HAL_ADC_AnalogWDGConfig()
1879 uint32_t HAL_ADC_GetState(ADC_HandleTypeDef* hadc) in HAL_ADC_GetState() argument
1882 return hadc->State; in HAL_ADC_GetState()
1891 uint32_t HAL_ADC_GetError(ADC_HandleTypeDef *hadc) in HAL_ADC_GetError() argument
1893 return hadc->ErrorCode; in HAL_ADC_GetError()
1917 static void ADC_Init(ADC_HandleTypeDef* hadc) in ADC_Init() argument
1922 ADC->CCR |= hadc->Init.ClockPrescaler; in ADC_Init()
1925 hadc->Instance->CR1 &= ~(ADC_CR1_SCAN); in ADC_Init()
1926 hadc->Instance->CR1 |= ADC_CR1_SCANCONV(hadc->Init.ScanConvMode); in ADC_Init()
1929 hadc->Instance->CR1 &= ~(ADC_CR1_RES); in ADC_Init()
1930 hadc->Instance->CR1 |= hadc->Init.Resolution; in ADC_Init()
1933 hadc->Instance->CR2 &= ~(ADC_CR2_ALIGN); in ADC_Init()
1934 hadc->Instance->CR2 |= hadc->Init.DataAlign; in ADC_Init()
1941 if(hadc->Init.ExternalTrigConv != ADC_SOFTWARE_START) in ADC_Init()
1944 hadc->Instance->CR2 &= ~(ADC_CR2_EXTSEL); in ADC_Init()
1945 hadc->Instance->CR2 |= hadc->Init.ExternalTrigConv; in ADC_Init()
1948 hadc->Instance->CR2 &= ~(ADC_CR2_EXTEN); in ADC_Init()
1949 hadc->Instance->CR2 |= hadc->Init.ExternalTrigConvEdge; in ADC_Init()
1954 hadc->Instance->CR2 &= ~(ADC_CR2_EXTSEL); in ADC_Init()
1955 hadc->Instance->CR2 &= ~(ADC_CR2_EXTEN); in ADC_Init()
1959 hadc->Instance->CR2 &= ~(ADC_CR2_CONT); in ADC_Init()
1960 hadc->Instance->CR2 |= ADC_CR2_CONTINUOUS((uint32_t)hadc->Init.ContinuousConvMode); in ADC_Init()
1962 if(hadc->Init.DiscontinuousConvMode != DISABLE) in ADC_Init()
1964 assert_param(IS_ADC_REGULAR_DISC_NUMBER(hadc->Init.NbrOfDiscConversion)); in ADC_Init()
1967 hadc->Instance->CR1 |= (uint32_t)ADC_CR1_DISCEN; in ADC_Init()
1970 hadc->Instance->CR1 &= ~(ADC_CR1_DISCNUM); in ADC_Init()
1971 hadc->Instance->CR1 |= ADC_CR1_DISCONTINUOUS(hadc->Init.NbrOfDiscConversion); in ADC_Init()
1976 hadc->Instance->CR1 &= ~(ADC_CR1_DISCEN); in ADC_Init()
1980 hadc->Instance->SQR1 &= ~(ADC_SQR1_L); in ADC_Init()
1981 hadc->Instance->SQR1 |= ADC_SQR1(hadc->Init.NbrOfConversion); in ADC_Init()
1984 hadc->Instance->CR2 &= ~(ADC_CR2_DDS); in ADC_Init()
1985 hadc->Instance->CR2 |= ADC_CR2_DMAContReq((uint32_t)hadc->Init.DMAContinuousRequests); in ADC_Init()
1988 hadc->Instance->CR2 &= ~(ADC_CR2_EOCS); in ADC_Init()
1989 hadc->Instance->CR2 |= ADC_CR2_EOCSelection(hadc->Init.EOCSelection); in ADC_Init()
2001 ADC_HandleTypeDef* hadc = ( ADC_HandleTypeDef* )((DMA_HandleTypeDef* )hdma)->Parent; in ADC_DMAConvCplt() local
2004 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL | HAL_ADC_STATE_ERROR_DMA)) in ADC_DMAConvCplt()
2007 SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOC); in ADC_DMAConvCplt()
2015 if(ADC_IS_SOFTWARE_START_REGULAR(hadc) && in ADC_DMAConvCplt()
2016 (hadc->Init.ContinuousConvMode == DISABLE) && in ADC_DMAConvCplt()
2017 (HAL_IS_BIT_CLR(hadc->Instance->SQR1, ADC_SQR1_L) || in ADC_DMAConvCplt()
2018 HAL_IS_BIT_CLR(hadc->Instance->CR2, ADC_CR2_EOCS) ) ) in ADC_DMAConvCplt()
2024 __HAL_ADC_DISABLE_IT(hadc, ADC_IT_EOC); in ADC_DMAConvCplt()
2027 CLEAR_BIT(hadc->State, HAL_ADC_STATE_REG_BUSY); in ADC_DMAConvCplt()
2029 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_INJ_BUSY)) in ADC_DMAConvCplt()
2031 SET_BIT(hadc->State, HAL_ADC_STATE_READY); in ADC_DMAConvCplt()
2037 hadc->ConvCpltCallback(hadc); in ADC_DMAConvCplt()
2039 HAL_ADC_ConvCpltCallback(hadc); in ADC_DMAConvCplt()
2044 if ((hadc->State & HAL_ADC_STATE_ERROR_INTERNAL) != 0UL) in ADC_DMAConvCplt()
2048 hadc->ErrorCallback(hadc); in ADC_DMAConvCplt()
2050 HAL_ADC_ErrorCallback(hadc); in ADC_DMAConvCplt()
2056 hadc->DMA_Handle->XferErrorCallback(hdma); in ADC_DMAConvCplt()
2069 ADC_HandleTypeDef* hadc = ( ADC_HandleTypeDef* )((DMA_HandleTypeDef* )hdma)->Parent; in ADC_DMAHalfConvCplt() local
2072 hadc->ConvHalfCpltCallback(hadc); in ADC_DMAHalfConvCplt()
2074 HAL_ADC_ConvHalfCpltCallback(hadc); in ADC_DMAHalfConvCplt()
2086 ADC_HandleTypeDef* hadc = ( ADC_HandleTypeDef* )((DMA_HandleTypeDef* )hdma)->Parent; in ADC_DMAError() local
2087 hadc->State= HAL_ADC_STATE_ERROR_DMA; in ADC_DMAError()
2089 hadc->ErrorCode |= HAL_ADC_ERROR_DMA; in ADC_DMAError()
2092 hadc->ErrorCallback(hadc); in ADC_DMAError()
2094 HAL_ADC_ErrorCallback(hadc); in ADC_DMAError()