Lines Matching refs:hadc

334 static HAL_StatusTypeDef ADC_Enable(ADC_HandleTypeDef *hadc);
335 static HAL_StatusTypeDef ADC_Disable(ADC_HandleTypeDef *hadc);
336 static HAL_StatusTypeDef ADC_ConversionStop(ADC_HandleTypeDef *hadc);
393 HAL_StatusTypeDef HAL_ADC_Init(ADC_HandleTypeDef *hadc) in HAL_ADC_Init() argument
397 if (hadc == NULL) in HAL_ADC_Init()
403 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_Init()
404 assert_param(IS_ADC_CLOCKPRESCALER(hadc->Init.ClockPrescaler)); in HAL_ADC_Init()
405 assert_param(IS_ADC_RESOLUTION(hadc->Init.Resolution)); in HAL_ADC_Init()
406 assert_param(IS_ADC_DATA_ALIGN(hadc->Init.DataAlign)); in HAL_ADC_Init()
407 assert_param(IS_ADC_SCAN_MODE(hadc->Init.ScanConvMode)); in HAL_ADC_Init()
408 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode)); in HAL_ADC_Init()
409 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.DiscontinuousConvMode)); in HAL_ADC_Init()
410 assert_param(IS_ADC_EXTTRIG_EDGE(hadc->Init.ExternalTrigConvEdge)); in HAL_ADC_Init()
411 assert_param(IS_ADC_EXTTRIG(hadc->Init.ExternalTrigConv)); in HAL_ADC_Init()
412 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.DMAContinuousRequests)); in HAL_ADC_Init()
413 assert_param(IS_ADC_EOC_SELECTION(hadc->Init.EOCSelection)); in HAL_ADC_Init()
414 assert_param(IS_ADC_OVERRUN(hadc->Init.Overrun)); in HAL_ADC_Init()
415 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.LowPowerAutoWait)); in HAL_ADC_Init()
416 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.LowPowerFrequencyMode)); in HAL_ADC_Init()
417 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.LowPowerAutoPowerOff)); in HAL_ADC_Init()
418 assert_param(IS_ADC_SAMPLE_TIME(hadc->Init.SamplingTime)); in HAL_ADC_Init()
419 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.OversamplingMode)); in HAL_ADC_Init()
429 if (hadc->State == HAL_ADC_STATE_RESET) in HAL_ADC_Init()
432 ADC_CLEAR_ERRORCODE(hadc); in HAL_ADC_Init()
435 hadc->Lock = HAL_UNLOCKED; in HAL_ADC_Init()
439hadc->ConvCpltCallback = HAL_ADC_ConvCpltCallback; /* Legacy weak cal… in HAL_ADC_Init()
440hadc->ConvHalfCpltCallback = HAL_ADC_ConvHalfCpltCallback; /* Legacy weak cal… in HAL_ADC_Init()
441hadc->LevelOutOfWindowCallback = HAL_ADC_LevelOutOfWindowCallback; /* Legacy weak cal… in HAL_ADC_Init()
442hadc->ErrorCallback = HAL_ADC_ErrorCallback; /* Legacy weak cal… in HAL_ADC_Init()
444 if (hadc->MspInitCallback == NULL) in HAL_ADC_Init()
446 hadc->MspInitCallback = HAL_ADC_MspInit; /* Legacy weak MspInit */ in HAL_ADC_Init()
450 hadc->MspInitCallback(hadc); in HAL_ADC_Init()
453 HAL_ADC_MspInit(hadc); in HAL_ADC_Init()
462 if (HAL_IS_BIT_SET(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL) || in HAL_ADC_Init()
463 (ADC_IS_CONVERSION_ONGOING_REGULAR(hadc) != RESET)) in HAL_ADC_Init()
466 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); in HAL_ADC_Init()
469 __HAL_UNLOCK(hadc); in HAL_ADC_Init()
474 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Init()
483 if (ADC_IS_ENABLE(hadc) == RESET) in HAL_ADC_Init()
495 __HAL_ADC_CLOCK_PRESCALER(hadc); in HAL_ADC_Init()
499 hadc->Instance->CFGR1 &= ~(ADC_CFGR1_RES); in HAL_ADC_Init()
500 hadc->Instance->CFGR1 |= hadc->Init.Resolution; in HAL_ADC_Init()
505 ADC->CCR |= __HAL_ADC_CCR_LOWFREQUENCY(hadc->Init.LowPowerFrequencyMode); in HAL_ADC_Init()
508 if (HAL_IS_BIT_CLR(hadc->Instance->CR, ADC_CR_ADVREGEN)) in HAL_ADC_Init()
511 hadc->Instance->CR |= ADC_CR_ADVREGEN; in HAL_ADC_Init()
525 hadc->Instance->CFGR1 &= ~(ADC_CFGR1_ALIGN | in HAL_ADC_Init()
536 hadc->Instance->CFGR1 |= (hadc->Init.DataAlign | in HAL_ADC_Init()
537 ADC_SCANDIR(hadc->Init.ScanConvMode) | in HAL_ADC_Init()
538 ADC_CONTINUOUS((uint32_t)hadc->Init.ContinuousConvMode) | in HAL_ADC_Init()
539 ADC_DMACONTREQ((uint32_t)hadc->Init.DMAContinuousRequests) | in HAL_ADC_Init()
540 hadc->Init.Overrun | in HAL_ADC_Init()
541 __HAL_ADC_CFGR1_AutoDelay(hadc->Init.LowPowerAutoWait) | in HAL_ADC_Init()
542 __HAL_ADC_CFGR1_AUTOFF(hadc->Init.LowPowerAutoPowerOff)); in HAL_ADC_Init()
549 if (hadc->Init.ExternalTrigConv != ADC_SOFTWARE_START) in HAL_ADC_Init()
551 hadc->Instance->CFGR1 |= hadc->Init.ExternalTrigConv | in HAL_ADC_Init()
552 hadc->Init.ExternalTrigConvEdge; in HAL_ADC_Init()
556 if (hadc->Init.DiscontinuousConvMode == ENABLE) in HAL_ADC_Init()
558 if (hadc->Init.ContinuousConvMode == DISABLE) in HAL_ADC_Init()
561 hadc->Instance->CFGR1 |= (ADC_CFGR1_DISCEN); in HAL_ADC_Init()
570 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); in HAL_ADC_Init()
573 SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); in HAL_ADC_Init()
577 if (hadc->Init.OversamplingMode == ENABLE) in HAL_ADC_Init()
579 assert_param(IS_ADC_OVERSAMPLING_RATIO(hadc->Init.Oversample.Ratio)); in HAL_ADC_Init()
580 assert_param(IS_ADC_RIGHT_BIT_SHIFT(hadc->Init.Oversample.RightBitShift)); in HAL_ADC_Init()
581 assert_param(IS_ADC_TRIGGERED_OVERSAMPLING_MODE(hadc->Init.Oversample.TriggeredMode)); in HAL_ADC_Init()
588 hadc->Instance->CFGR2 &= ~(ADC_CFGR2_OVSR | in HAL_ADC_Init()
592 hadc->Instance->CFGR2 |= (hadc->Init.Oversample.Ratio | in HAL_ADC_Init()
593 hadc->Init.Oversample.RightBitShift | in HAL_ADC_Init()
594 hadc->Init.Oversample.TriggeredMode); in HAL_ADC_Init()
597 hadc->Instance->CFGR2 |= ADC_CFGR2_OVSE; in HAL_ADC_Init()
601 if (HAL_IS_BIT_SET(hadc->Instance->CFGR2, ADC_CFGR2_OVSE)) in HAL_ADC_Init()
604 hadc->Instance->CFGR2 &= ~ADC_CFGR2_OVSE; in HAL_ADC_Init()
609 hadc->Instance->SMPR &= (uint32_t)(~ADC_SMPR_SMPR); in HAL_ADC_Init()
612 hadc->Instance->SMPR |= hadc->Init.SamplingTime; in HAL_ADC_Init()
615 ADC_CLEAR_ERRORCODE(hadc); in HAL_ADC_Init()
618 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Init()
639 HAL_StatusTypeDef HAL_ADC_DeInit(ADC_HandleTypeDef *hadc) in HAL_ADC_DeInit() argument
644 if (hadc == NULL) in HAL_ADC_DeInit()
650 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_DeInit()
653 SET_BIT(hadc->State, HAL_ADC_STATE_BUSY_INTERNAL); in HAL_ADC_DeInit()
656 tmp_hal_status = ADC_ConversionStop(hadc); in HAL_ADC_DeInit()
662 tmp_hal_status = ADC_Disable(hadc); in HAL_ADC_DeInit()
668 hadc->State = HAL_ADC_STATE_READY; in HAL_ADC_DeInit()
680 __HAL_ADC_DISABLE_IT(hadc, (ADC_IT_AWD | ADC_IT_OVR | ADC_IT_EOCAL | ADC_IT_EOS | \ in HAL_ADC_DeInit()
685 __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_AWD | ADC_FLAG_EOCAL | ADC_FLAG_OVR | ADC_FLAG_EOS | \ in HAL_ADC_DeInit()
693 hadc->Instance->CR &= ~ADC_CR_ADVREGEN; in HAL_ADC_DeInit()
699 hadc->Instance->CFGR1 &= ~(ADC_CFGR1_AWDCH | ADC_CFGR1_AWDEN | ADC_CFGR1_AWDSGL | \ in HAL_ADC_DeInit()
706 hadc->Instance->CFGR2 &= ~(ADC_CFGR2_TOVS | ADC_CFGR2_OVSS | ADC_CFGR2_OVSR | \ in HAL_ADC_DeInit()
711 hadc->Instance->SMPR &= ~(ADC_SMPR_SMPR); in HAL_ADC_DeInit()
714 hadc->Instance->TR &= ~(ADC_TR_LT | ADC_TR_HT); in HAL_ADC_DeInit()
717 hadc->Instance->CALFACT &= ~(ADC_CALFACT_CALFACT); in HAL_ADC_DeInit()
727 hadc->Instance->CALFACT &= ~(ADC_CALFACT_CALFACT); in HAL_ADC_DeInit()
739 if (hadc->MspDeInitCallback == NULL) in HAL_ADC_DeInit()
741 hadc->MspDeInitCallback = HAL_ADC_MspDeInit; /* Legacy weak MspDeInit */ in HAL_ADC_DeInit()
745 hadc->MspDeInitCallback(hadc); in HAL_ADC_DeInit()
748 HAL_ADC_MspDeInit(hadc); in HAL_ADC_DeInit()
752 ADC_CLEAR_ERRORCODE(hadc); in HAL_ADC_DeInit()
755 hadc->State = HAL_ADC_STATE_RESET; in HAL_ADC_DeInit()
759 __HAL_UNLOCK(hadc); in HAL_ADC_DeInit()
770 __weak void HAL_ADC_MspInit(ADC_HandleTypeDef *hadc) in HAL_ADC_MspInit() argument
773 UNUSED(hadc); in HAL_ADC_MspInit()
785 __weak void HAL_ADC_MspDeInit(ADC_HandleTypeDef *hadc) in HAL_ADC_MspDeInit() argument
788 UNUSED(hadc); in HAL_ADC_MspDeInit()
815 HAL_StatusTypeDef HAL_ADC_RegisterCallback(ADC_HandleTypeDef *hadc, HAL_ADC_CallbackIDTypeDef Callb… in HAL_ADC_RegisterCallback() argument
822 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_RegisterCallback()
827 if ((hadc->State & HAL_ADC_STATE_READY) != 0) in HAL_ADC_RegisterCallback()
832 hadc->ConvCpltCallback = pCallback; in HAL_ADC_RegisterCallback()
836 hadc->ConvHalfCpltCallback = pCallback; in HAL_ADC_RegisterCallback()
840 hadc->LevelOutOfWindowCallback = pCallback; in HAL_ADC_RegisterCallback()
844 hadc->ErrorCallback = pCallback; in HAL_ADC_RegisterCallback()
848 hadc->MspInitCallback = pCallback; in HAL_ADC_RegisterCallback()
852 hadc->MspDeInitCallback = pCallback; in HAL_ADC_RegisterCallback()
857 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_RegisterCallback()
864 else if (HAL_ADC_STATE_RESET == hadc->State) in HAL_ADC_RegisterCallback()
869 hadc->MspInitCallback = pCallback; in HAL_ADC_RegisterCallback()
873 hadc->MspDeInitCallback = pCallback; in HAL_ADC_RegisterCallback()
878 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_RegisterCallback()
888 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_RegisterCallback()
915 HAL_StatusTypeDef HAL_ADC_UnRegisterCallback(ADC_HandleTypeDef *hadc, HAL_ADC_CallbackIDTypeDef Cal… in HAL_ADC_UnRegisterCallback() argument
919 if ((hadc->State & HAL_ADC_STATE_READY) != 0) in HAL_ADC_UnRegisterCallback()
924 hadc->ConvCpltCallback = HAL_ADC_ConvCpltCallback; in HAL_ADC_UnRegisterCallback()
928 hadc->ConvHalfCpltCallback = HAL_ADC_ConvHalfCpltCallback; in HAL_ADC_UnRegisterCallback()
932 hadc->LevelOutOfWindowCallback = HAL_ADC_LevelOutOfWindowCallback; in HAL_ADC_UnRegisterCallback()
936 hadc->ErrorCallback = HAL_ADC_ErrorCallback; in HAL_ADC_UnRegisterCallback()
940 hadc->MspInitCallback = HAL_ADC_MspInit; /* Legacy weak MspInit */ in HAL_ADC_UnRegisterCallback()
944 hadc->MspDeInitCallback = HAL_ADC_MspDeInit; /* Legacy weak MspDeInit */ in HAL_ADC_UnRegisterCallback()
949 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_UnRegisterCallback()
956 else if (HAL_ADC_STATE_RESET == hadc->State) in HAL_ADC_UnRegisterCallback()
961hadc->MspInitCallback = HAL_ADC_MspInit; /* Legacy weak MspInit */ in HAL_ADC_UnRegisterCallback()
965hadc->MspDeInitCallback = HAL_ADC_MspDeInit; /* Legacy weak MspDeInit */ in HAL_ADC_UnRegisterCallback()
970 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_UnRegisterCallback()
980 hadc->ErrorCode |= HAL_ADC_ERROR_INVALID_CALLBACK; in HAL_ADC_UnRegisterCallback()
1023 HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef *hadc) in HAL_ADC_Start() argument
1028 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_Start()
1031 if (ADC_IS_CONVERSION_ONGOING_REGULAR(hadc) == RESET) in HAL_ADC_Start()
1034 __HAL_LOCK(hadc); in HAL_ADC_Start()
1039 if (hadc->Init.LowPowerAutoPowerOff != ENABLE) in HAL_ADC_Start()
1041 tmp_hal_status = ADC_Enable(hadc); in HAL_ADC_Start()
1050 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Start()
1055 ADC_CLEAR_ERRORCODE(hadc); in HAL_ADC_Start()
1060 __HAL_UNLOCK(hadc); in HAL_ADC_Start()
1065 __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOC | ADC_FLAG_EOS | ADC_FLAG_OVR)); in HAL_ADC_Start()
1071 hadc->Instance->CR |= ADC_CR_ADSTART; in HAL_ADC_Start()
1089 HAL_StatusTypeDef HAL_ADC_Stop(ADC_HandleTypeDef *hadc) in HAL_ADC_Stop() argument
1094 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_Stop()
1097 __HAL_LOCK(hadc); in HAL_ADC_Stop()
1100 tmp_hal_status = ADC_ConversionStop(hadc); in HAL_ADC_Stop()
1106 tmp_hal_status = ADC_Disable(hadc); in HAL_ADC_Stop()
1112 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Stop()
1119 __HAL_UNLOCK(hadc); in HAL_ADC_Stop()
1143 HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef *hadc, uint32_t Timeout) in HAL_ADC_PollForConversion() argument
1149 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_PollForConversion()
1152 if (hadc->Init.EOCSelection == ADC_EOC_SEQ_CONV) in HAL_ADC_PollForConversion()
1165 if (HAL_IS_BIT_SET(hadc->Instance->CFGR1, ADC_CFGR1_DMAEN)) in HAL_ADC_PollForConversion()
1168 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); in HAL_ADC_PollForConversion()
1171 __HAL_UNLOCK(hadc); in HAL_ADC_PollForConversion()
1185 while (HAL_IS_BIT_CLR(hadc->Instance->ISR, tmp_Flag_EOC)) in HAL_ADC_PollForConversion()
1193 if (HAL_IS_BIT_CLR(hadc->Instance->ISR, tmp_Flag_EOC)) in HAL_ADC_PollForConversion()
1196 SET_BIT(hadc->State, HAL_ADC_STATE_TIMEOUT); in HAL_ADC_PollForConversion()
1199 __HAL_UNLOCK(hadc); in HAL_ADC_PollForConversion()
1208 SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOC); in HAL_ADC_PollForConversion()
1212 if (ADC_IS_SOFTWARE_START_REGULAR(hadc) && in HAL_ADC_PollForConversion()
1213 (hadc->Init.ContinuousConvMode == DISABLE)) in HAL_ADC_PollForConversion()
1216 if (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_EOS)) in HAL_ADC_PollForConversion()
1220 if (ADC_IS_CONVERSION_ONGOING_REGULAR(hadc) == RESET) in HAL_ADC_PollForConversion()
1226 __HAL_ADC_DISABLE_IT(hadc, ADC_IT_EOC | ADC_IT_EOS); in HAL_ADC_PollForConversion()
1229 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_PollForConversion()
1236 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); in HAL_ADC_PollForConversion()
1239 SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); in HAL_ADC_PollForConversion()
1247 if (hadc->Init.LowPowerAutoWait == DISABLE) in HAL_ADC_PollForConversion()
1250 __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOC | ADC_FLAG_EOS)); in HAL_ADC_PollForConversion()
1273 HAL_StatusTypeDef HAL_ADC_PollForEvent(ADC_HandleTypeDef *hadc, uint32_t EventType, uint32_t Timeou… in HAL_ADC_PollForEvent() argument
1278 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_PollForEvent()
1285 while (__HAL_ADC_GET_FLAG(hadc, EventType) == RESET) in HAL_ADC_PollForEvent()
1293 if (__HAL_ADC_GET_FLAG(hadc, EventType) == RESET) in HAL_ADC_PollForEvent()
1296 SET_BIT(hadc->State, HAL_ADC_STATE_TIMEOUT); in HAL_ADC_PollForEvent()
1299 __HAL_UNLOCK(hadc); in HAL_ADC_PollForEvent()
1312 SET_BIT(hadc->State, HAL_ADC_STATE_AWD1); in HAL_ADC_PollForEvent()
1315 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_AWD); in HAL_ADC_PollForEvent()
1324 if (hadc->Init.Overrun == ADC_OVR_DATA_PRESERVED) in HAL_ADC_PollForEvent()
1327 SET_BIT(hadc->State, HAL_ADC_STATE_REG_OVR); in HAL_ADC_PollForEvent()
1330 SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_OVR); in HAL_ADC_PollForEvent()
1334 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_OVR); in HAL_ADC_PollForEvent()
1360 HAL_StatusTypeDef HAL_ADC_Start_IT(ADC_HandleTypeDef *hadc) in HAL_ADC_Start_IT() argument
1365 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_Start_IT()
1368 if (ADC_IS_CONVERSION_ONGOING_REGULAR(hadc) == RESET) in HAL_ADC_Start_IT()
1371 __HAL_LOCK(hadc); in HAL_ADC_Start_IT()
1376 if (hadc->Init.LowPowerAutoPowerOff != ENABLE) in HAL_ADC_Start_IT()
1378 tmp_hal_status = ADC_Enable(hadc); in HAL_ADC_Start_IT()
1387 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Start_IT()
1392 ADC_CLEAR_ERRORCODE(hadc); in HAL_ADC_Start_IT()
1397 __HAL_UNLOCK(hadc); in HAL_ADC_Start_IT()
1402 __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOC | ADC_FLAG_EOS | ADC_FLAG_OVR)); in HAL_ADC_Start_IT()
1406 switch (hadc->Init.EOCSelection) in HAL_ADC_Start_IT()
1409 __HAL_ADC_DISABLE_IT(hadc, ADC_IT_EOC); in HAL_ADC_Start_IT()
1410 __HAL_ADC_ENABLE_IT(hadc, (ADC_IT_EOS | ADC_IT_OVR)); in HAL_ADC_Start_IT()
1414 __HAL_ADC_ENABLE_IT(hadc, (ADC_IT_EOC | ADC_IT_EOS | ADC_IT_OVR)); in HAL_ADC_Start_IT()
1422 hadc->Instance->CR |= ADC_CR_ADSTART; in HAL_ADC_Start_IT()
1441 HAL_StatusTypeDef HAL_ADC_Stop_IT(ADC_HandleTypeDef *hadc) in HAL_ADC_Stop_IT() argument
1446 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_Stop_IT()
1449 __HAL_LOCK(hadc); in HAL_ADC_Stop_IT()
1452 tmp_hal_status = ADC_ConversionStop(hadc); in HAL_ADC_Stop_IT()
1459 __HAL_ADC_DISABLE_IT(hadc, (ADC_IT_EOC | ADC_IT_EOS | ADC_IT_OVR)); in HAL_ADC_Stop_IT()
1462 tmp_hal_status = ADC_Disable(hadc); in HAL_ADC_Stop_IT()
1468 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Stop_IT()
1475 __HAL_UNLOCK(hadc); in HAL_ADC_Stop_IT()
1491 HAL_StatusTypeDef HAL_ADC_Start_DMA(ADC_HandleTypeDef *hadc, uint32_t *pData, uint32_t Length) in HAL_ADC_Start_DMA() argument
1496 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_Start_DMA()
1499 if (ADC_IS_CONVERSION_ONGOING_REGULAR(hadc) == RESET) in HAL_ADC_Start_DMA()
1502 __HAL_LOCK(hadc); in HAL_ADC_Start_DMA()
1505 hadc->Instance->CFGR1 |= ADC_CFGR1_DMAEN; in HAL_ADC_Start_DMA()
1510 if (hadc->Init.LowPowerAutoPowerOff != ENABLE) in HAL_ADC_Start_DMA()
1512 tmp_hal_status = ADC_Enable(hadc); in HAL_ADC_Start_DMA()
1521 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Start_DMA()
1526 ADC_CLEAR_ERRORCODE(hadc); in HAL_ADC_Start_DMA()
1531 __HAL_UNLOCK(hadc); in HAL_ADC_Start_DMA()
1534 hadc->DMA_Handle->XferCpltCallback = ADC_DMAConvCplt; in HAL_ADC_Start_DMA()
1537 hadc->DMA_Handle->XferHalfCpltCallback = ADC_DMAHalfConvCplt; in HAL_ADC_Start_DMA()
1540 hadc->DMA_Handle->XferErrorCallback = ADC_DMAError; in HAL_ADC_Start_DMA()
1549 __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOC | ADC_FLAG_EOS | ADC_FLAG_OVR)); in HAL_ADC_Start_DMA()
1552 __HAL_ADC_ENABLE_IT(hadc, ADC_IT_OVR); in HAL_ADC_Start_DMA()
1555 HAL_DMA_Start_IT(hadc->DMA_Handle, (uint32_t)&hadc->Instance->DR, (uint32_t)pData, Length); in HAL_ADC_Start_DMA()
1561 hadc->Instance->CR |= ADC_CR_ADSTART; in HAL_ADC_Start_DMA()
1581 HAL_StatusTypeDef HAL_ADC_Stop_DMA(ADC_HandleTypeDef *hadc) in HAL_ADC_Stop_DMA() argument
1586 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_Stop_DMA()
1589 __HAL_LOCK(hadc); in HAL_ADC_Stop_DMA()
1592 tmp_hal_status = ADC_ConversionStop(hadc); in HAL_ADC_Stop_DMA()
1598 CLEAR_BIT(hadc->Instance->CFGR1, ADC_CFGR1_DMAEN); in HAL_ADC_Stop_DMA()
1602 if (hadc->DMA_Handle->State == HAL_DMA_STATE_BUSY) in HAL_ADC_Stop_DMA()
1604 tmp_hal_status = HAL_DMA_Abort(hadc->DMA_Handle); in HAL_ADC_Stop_DMA()
1610 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_DMA); in HAL_ADC_Stop_DMA()
1615 __HAL_ADC_DISABLE_IT(hadc, ADC_IT_OVR); in HAL_ADC_Stop_DMA()
1622 tmp_hal_status = ADC_Disable(hadc); in HAL_ADC_Stop_DMA()
1626 ADC_Disable(hadc); in HAL_ADC_Stop_DMA()
1633 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_Stop_DMA()
1641 __HAL_UNLOCK(hadc); in HAL_ADC_Stop_DMA()
1666 uint32_t HAL_ADC_GetValue(ADC_HandleTypeDef *hadc) in HAL_ADC_GetValue() argument
1669 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_GetValue()
1675 return hadc->Instance->DR; in HAL_ADC_GetValue()
1683 void HAL_ADC_IRQHandler(ADC_HandleTypeDef *hadc) in HAL_ADC_IRQHandler() argument
1685 uint32_t tmp_isr = hadc->Instance->ISR; in HAL_ADC_IRQHandler()
1686 uint32_t tmp_ier = hadc->Instance->IER; in HAL_ADC_IRQHandler()
1689 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_IRQHandler()
1690 assert_param(IS_FUNCTIONAL_STATE(hadc->Init.ContinuousConvMode)); in HAL_ADC_IRQHandler()
1691 assert_param(IS_ADC_EOC_SELECTION(hadc->Init.EOCSelection)); in HAL_ADC_IRQHandler()
1698 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL)) in HAL_ADC_IRQHandler()
1701 SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOC); in HAL_ADC_IRQHandler()
1706 if (ADC_IS_SOFTWARE_START_REGULAR(hadc) && in HAL_ADC_IRQHandler()
1707 (hadc->Init.ContinuousConvMode == DISABLE)) in HAL_ADC_IRQHandler()
1714 if (ADC_IS_CONVERSION_ONGOING_REGULAR(hadc) == RESET) in HAL_ADC_IRQHandler()
1720 __HAL_ADC_DISABLE_IT(hadc, ADC_IT_EOC | ADC_IT_EOS); in HAL_ADC_IRQHandler()
1723 ADC_STATE_CLR_SET(hadc->State, in HAL_ADC_IRQHandler()
1730 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); in HAL_ADC_IRQHandler()
1733 SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); in HAL_ADC_IRQHandler()
1742 hadc->ConvCpltCallback(hadc); in HAL_ADC_IRQHandler()
1744 HAL_ADC_ConvCpltCallback(hadc); in HAL_ADC_IRQHandler()
1757 if (hadc->Init.LowPowerAutoWait != ENABLE) in HAL_ADC_IRQHandler()
1759 __HAL_ADC_CLEAR_FLAG(hadc, (ADC_FLAG_EOC | ADC_FLAG_EOS)); in HAL_ADC_IRQHandler()
1767 SET_BIT(hadc->State, HAL_ADC_STATE_AWD1); in HAL_ADC_IRQHandler()
1770 hadc->LevelOutOfWindowCallback(hadc); in HAL_ADC_IRQHandler()
1772 HAL_ADC_LevelOutOfWindowCallback(hadc); in HAL_ADC_IRQHandler()
1776 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_AWD); in HAL_ADC_IRQHandler()
1790 if ((hadc->Init.Overrun == ADC_OVR_DATA_PRESERVED) || in HAL_ADC_IRQHandler()
1791 HAL_IS_BIT_SET(hadc->Instance->CFGR1, ADC_CFGR1_DMAEN)) in HAL_ADC_IRQHandler()
1794 SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_OVR); in HAL_ADC_IRQHandler()
1797 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_OVR); in HAL_ADC_IRQHandler()
1800 hadc->ErrorCallback(hadc); in HAL_ADC_IRQHandler()
1802 HAL_ADC_ErrorCallback(hadc); in HAL_ADC_IRQHandler()
1807 __HAL_ADC_CLEAR_FLAG(hadc, ADC_FLAG_OVR); in HAL_ADC_IRQHandler()
1817 __weak void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc) in HAL_ADC_ConvCpltCallback() argument
1820 UNUSED(hadc); in HAL_ADC_ConvCpltCallback()
1832 __weak void HAL_ADC_ConvHalfCpltCallback(ADC_HandleTypeDef *hadc) in HAL_ADC_ConvHalfCpltCallback() argument
1835 UNUSED(hadc); in HAL_ADC_ConvHalfCpltCallback()
1847 __weak void HAL_ADC_LevelOutOfWindowCallback(ADC_HandleTypeDef *hadc) in HAL_ADC_LevelOutOfWindowCallback() argument
1850 UNUSED(hadc); in HAL_ADC_LevelOutOfWindowCallback()
1869 __weak void HAL_ADC_ErrorCallback(ADC_HandleTypeDef *hadc) in HAL_ADC_ErrorCallback() argument
1872 UNUSED(hadc); in HAL_ADC_ErrorCallback()
1920 HAL_StatusTypeDef HAL_ADC_ConfigChannel(ADC_HandleTypeDef *hadc, ADC_ChannelConfTypeDef *sConfig) in HAL_ADC_ConfigChannel() argument
1923 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_ConfigChannel()
1928 __HAL_LOCK(hadc); in HAL_ADC_ConfigChannel()
1935 if (ADC_IS_CONVERSION_ONGOING_REGULAR(hadc) != RESET) in HAL_ADC_ConfigChannel()
1938 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); in HAL_ADC_ConfigChannel()
1940 __HAL_UNLOCK(hadc); in HAL_ADC_ConfigChannel()
1947 hadc->Instance->CHSELR |= (uint32_t)(sConfig->Channel & ADC_CHANNEL_MASK); in HAL_ADC_ConfigChannel()
1983 hadc->Instance->CHSELR &= ~((uint32_t)(sConfig->Channel & ADC_CHANNEL_MASK)); in HAL_ADC_ConfigChannel()
2011 __HAL_UNLOCK(hadc); in HAL_ADC_ConfigChannel()
2039 HAL_StatusTypeDef HAL_ADC_AnalogWDGConfig(ADC_HandleTypeDef *hadc, ADC_AnalogWDGConfTypeDef *Analog… in HAL_ADC_AnalogWDGConfig() argument
2047 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_AnalogWDGConfig()
2057 assert_param(IS_ADC_RANGE(ADC_GET_RESOLUTION(hadc), AnalogWDGConfig->HighThreshold)); in HAL_ADC_AnalogWDGConfig()
2058 assert_param(IS_ADC_RANGE(ADC_GET_RESOLUTION(hadc), AnalogWDGConfig->LowThreshold)); in HAL_ADC_AnalogWDGConfig()
2061 __HAL_LOCK(hadc); in HAL_ADC_AnalogWDGConfig()
2068 if (ADC_IS_CONVERSION_ONGOING_REGULAR(hadc) == RESET) in HAL_ADC_AnalogWDGConfig()
2074 __HAL_ADC_ENABLE_IT(hadc, ADC_IT_AWD); in HAL_ADC_AnalogWDGConfig()
2079 __HAL_ADC_DISABLE_IT(hadc, ADC_IT_AWD); in HAL_ADC_AnalogWDGConfig()
2086 hadc->Instance->CFGR1 &= ~(ADC_CFGR1_AWDSGL | in HAL_ADC_AnalogWDGConfig()
2090 hadc->Instance->CFGR1 |= (AnalogWDGConfig->WatchdogMode | in HAL_ADC_AnalogWDGConfig()
2096 …tmpAWDHighThresholdShifted = ADC_AWD1THRESHOLD_SHIFT_RESOLUTION(hadc, AnalogWDGConfig->HighThresho… in HAL_ADC_AnalogWDGConfig()
2097 …tmpAWDLowThresholdShifted = ADC_AWD1THRESHOLD_SHIFT_RESOLUTION(hadc, AnalogWDGConfig->LowThreshol… in HAL_ADC_AnalogWDGConfig()
2100 hadc->Instance->TR &= (uint32_t) ~(ADC_TR_HT | ADC_TR_LT); in HAL_ADC_AnalogWDGConfig()
2103 hadc->Instance->TR = ADC_TRX_HIGHTHRESHOLD(tmpAWDHighThresholdShifted); in HAL_ADC_AnalogWDGConfig()
2105 hadc->Instance->TR |= tmpAWDLowThresholdShifted; in HAL_ADC_AnalogWDGConfig()
2112 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); in HAL_ADC_AnalogWDGConfig()
2118 __HAL_UNLOCK(hadc); in HAL_ADC_AnalogWDGConfig()
2156 uint32_t HAL_ADC_GetState(ADC_HandleTypeDef *hadc) in HAL_ADC_GetState() argument
2159 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_GetState()
2162 return hadc->State; in HAL_ADC_GetState()
2170 uint32_t HAL_ADC_GetError(ADC_HandleTypeDef *hadc) in HAL_ADC_GetError() argument
2173 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in HAL_ADC_GetError()
2175 return hadc->ErrorCode; in HAL_ADC_GetError()
2203 static HAL_StatusTypeDef ADC_Enable(ADC_HandleTypeDef *hadc) in ADC_Enable() argument
2211 if (ADC_IS_ENABLE(hadc) == RESET) in ADC_Enable()
2214 if (ADC_ENABLING_CONDITIONS(hadc) == RESET) in ADC_Enable()
2217 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); in ADC_Enable()
2220 SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); in ADC_Enable()
2226 __HAL_ADC_ENABLE(hadc); in ADC_Enable()
2235 while (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_RDY) == RESET) in ADC_Enable()
2240 if (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_RDY) == RESET) in ADC_Enable()
2243 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); in ADC_Enable()
2246 SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); in ADC_Enable()
2265 static HAL_StatusTypeDef ADC_Disable(ADC_HandleTypeDef *hadc) in ADC_Disable() argument
2272 if (ADC_IS_ENABLE(hadc) != RESET) in ADC_Disable()
2275 if (ADC_DISABLING_CONDITIONS(hadc) != RESET) in ADC_Disable()
2278 __HAL_ADC_DISABLE(hadc); in ADC_Disable()
2283 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); in ADC_Disable()
2286 SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); in ADC_Disable()
2295 while (HAL_IS_BIT_SET(hadc->Instance->CR, ADC_CR_ADEN)) in ADC_Disable()
2300 if (HAL_IS_BIT_SET(hadc->Instance->CR, ADC_CR_ADEN)) in ADC_Disable()
2303 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); in ADC_Disable()
2306 SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); in ADC_Disable()
2326 static HAL_StatusTypeDef ADC_ConversionStop(ADC_HandleTypeDef *hadc) in ADC_ConversionStop() argument
2331 assert_param(IS_ADC_ALL_INSTANCE(hadc->Instance)); in ADC_ConversionStop()
2335 if (ADC_IS_CONVERSION_ONGOING_REGULAR(hadc)) in ADC_ConversionStop()
2340 if (HAL_IS_BIT_SET(hadc->Instance->CR, ADC_CR_ADSTART) && in ADC_ConversionStop()
2341 HAL_IS_BIT_CLR(hadc->Instance->CR, ADC_CR_ADDIS)) in ADC_ConversionStop()
2344 hadc->Instance->CR |= ADC_CR_ADSTP; in ADC_ConversionStop()
2351 while ((hadc->Instance->CR & ADC_CR_ADSTART) != RESET) in ADC_ConversionStop()
2356 if ((hadc->Instance->CR & ADC_CR_ADSTART) != RESET) in ADC_ConversionStop()
2359 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL); in ADC_ConversionStop()
2362 SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); in ADC_ConversionStop()
2383 ADC_HandleTypeDef *hadc = (ADC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in ADC_DMAConvCplt() local
2386 if (HAL_IS_BIT_CLR(hadc->State, HAL_ADC_STATE_ERROR_INTERNAL | HAL_ADC_STATE_ERROR_DMA)) in ADC_DMAConvCplt()
2389 SET_BIT(hadc->State, HAL_ADC_STATE_REG_EOC); in ADC_DMAConvCplt()
2393 if (ADC_IS_SOFTWARE_START_REGULAR(hadc) && in ADC_DMAConvCplt()
2394 (hadc->Init.ContinuousConvMode == DISABLE)) in ADC_DMAConvCplt()
2397 if (__HAL_ADC_GET_FLAG(hadc, ADC_FLAG_EOS)) in ADC_DMAConvCplt()
2401 if (ADC_IS_CONVERSION_ONGOING_REGULAR(hadc) == RESET) in ADC_DMAConvCplt()
2407 __HAL_ADC_DISABLE_IT(hadc, ADC_IT_EOC | ADC_IT_EOS); in ADC_DMAConvCplt()
2410 ADC_STATE_CLR_SET(hadc->State, in ADC_DMAConvCplt()
2417 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_CONFIG); in ADC_DMAConvCplt()
2420 SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_INTERNAL); in ADC_DMAConvCplt()
2427 hadc->ConvCpltCallback(hadc); in ADC_DMAConvCplt()
2429 HAL_ADC_ConvCpltCallback(hadc); in ADC_DMAConvCplt()
2435 hadc->DMA_Handle->XferErrorCallback(hdma); in ADC_DMAConvCplt()
2447 ADC_HandleTypeDef *hadc = (ADC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in ADC_DMAHalfConvCplt() local
2451 hadc->ConvHalfCpltCallback(hadc); in ADC_DMAHalfConvCplt()
2453 HAL_ADC_ConvHalfCpltCallback(hadc); in ADC_DMAHalfConvCplt()
2465 ADC_HandleTypeDef *hadc = (ADC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in ADC_DMAError() local
2468 SET_BIT(hadc->State, HAL_ADC_STATE_ERROR_DMA); in ADC_DMAError()
2471 SET_BIT(hadc->ErrorCode, HAL_ADC_ERROR_DMA); in ADC_DMAError()
2475 hadc->ErrorCallback(hadc); in ADC_DMAError()
2477 HAL_ADC_ErrorCallback(hadc); in ADC_DMAError()