197 #ifdef HAL_DFSDM_MODULE_ENABLED 198 #if defined (STM32F765xx) || defined(STM32F767xx) || defined(STM32F769xx) || defined(STM32F777xx) || defined(STM32F779xx) 209 #define DFSDM_CHCFGR1_CLK_DIV_OFFSET POSITION_VAL(DFSDM_CHCFGR1_CKOUTDIV) 210 #define DFSDM_CHAWSCDR_BKSCD_OFFSET POSITION_VAL(DFSDM_CHAWSCDR_BKSCD) 211 #define DFSDM_CHAWSCDR_FOSR_OFFSET POSITION_VAL(DFSDM_CHAWSCDR_AWFOSR) 212 #define DFSDM_CHCFGR2_OFFSET_OFFSET POSITION_VAL(DFSDM_CHCFGR2_OFFSET) 213 #define DFSDM_CHCFGR2_DTRBS_OFFSET POSITION_VAL(DFSDM_CHCFGR2_DTRBS) 214 #define DFSDM_FLTFCR_FOSR_OFFSET POSITION_VAL(DFSDM_FLTFCR_FOSR) 215 #define DFSDM_FLTCR1_MSB_RCH_OFFSET 8 216 #define DFSDM_FLTCR2_EXCH_OFFSET POSITION_VAL(DFSDM_FLTCR2_EXCH) 217 #define DFSDM_FLTCR2_AWDCH_OFFSET POSITION_VAL(DFSDM_FLTCR2_AWDCH) 218 #define DFSDM_FLTISR_CKABF_OFFSET POSITION_VAL(DFSDM_FLTISR_CKABF) 219 #define DFSDM_FLTISR_SCDF_OFFSET POSITION_VAL(DFSDM_FLTISR_SCDF) 220 #define DFSDM_FLTICR_CLRCKABF_OFFSET POSITION_VAL(DFSDM_FLTICR_CLRCKABF) 221 #define DFSDM_FLTICR_CLRSCDF_OFFSET POSITION_VAL(DFSDM_FLTICR_CLRSCSDF) 222 #define DFSDM_FLTRDATAR_DATA_OFFSET POSITION_VAL(DFSDM_FLTRDATAR_RDATA) 223 #define DFSDM_FLTJDATAR_DATA_OFFSET POSITION_VAL(DFSDM_FLTJDATAR_JDATA) 224 #define DFSDM_FLTAWHTR_THRESHOLD_OFFSET POSITION_VAL(DFSDM_FLTAWHTR_AWHT) 225 #define DFSDM_FLTAWLTR_THRESHOLD_OFFSET POSITION_VAL(DFSDM_FLTAWLTR_AWLT) 226 #define DFSDM_FLTEXMAX_DATA_OFFSET POSITION_VAL(DFSDM_FLTEXMAX_EXMAX) 227 #define DFSDM_FLTEXMIN_DATA_OFFSET POSITION_VAL(DFSDM_FLTEXMIN_EXMIN) 228 #define DFSDM_FLTCNVTIMR_DATA_OFFSET POSITION_VAL(DFSDM_FLTCNVTIMR_CNVCNT) 229 #define DFSDM_FLTAWSR_HIGH_OFFSET POSITION_VAL(DFSDM_FLTAWSR_AWHTF) 230 #define DFSDM_MSB_MASK 0xFFFF0000U 231 #define DFSDM_LSB_MASK 0x0000FFFFU 232 #define DFSDM_CKAB_TIMEOUT 5000U 233 #define DFSDM1_CHANNEL_NUMBER 8U 243 __IO uint32_t v_dfsdm1ChannelCounter = 0;
244 DFSDM_Channel_HandleTypeDef* a_dfsdm1ChannelHandle[DFSDM1_CHANNEL_NUMBER] = {
NULL};
253 static uint32_t DFSDM_GetInjChannelsNbr(uint32_t Channels);
255 static void DFSDM_RegConvStart(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
256 static void DFSDM_RegConvStop(DFSDM_Filter_HandleTypeDef* hdfsdm_filter);
257 static void DFSDM_InjConvStart(DFSDM_Filter_HandleTypeDef* hdfsdm_filter);
258 static void DFSDM_InjConvStop(DFSDM_Filter_HandleTypeDef* hdfsdm_filter);
293 HAL_StatusTypeDef HAL_DFSDM_ChannelInit(DFSDM_Channel_HandleTypeDef *hdfsdm_channel)
296 if(hdfsdm_channel ==
NULL)
304 assert_param(IS_DFSDM_CHANNEL_INPUT(hdfsdm_channel->Init.Input.Multiplexer));
305 assert_param(IS_DFSDM_CHANNEL_DATA_PACKING(hdfsdm_channel->Init.Input.DataPacking));
306 assert_param(IS_DFSDM_CHANNEL_INPUT_PINS(hdfsdm_channel->Init.Input.Pins));
307 assert_param(IS_DFSDM_CHANNEL_SERIAL_INTERFACE_TYPE(hdfsdm_channel->Init.SerialInterface.Type));
308 assert_param(IS_DFSDM_CHANNEL_SPI_CLOCK(hdfsdm_channel->Init.SerialInterface.SpiClock));
309 assert_param(IS_DFSDM_CHANNEL_FILTER_ORDER(hdfsdm_channel->Init.Awd.FilterOrder));
310 assert_param(IS_DFSDM_CHANNEL_FILTER_OVS_RATIO(hdfsdm_channel->Init.Awd.Oversampling));
311 assert_param(IS_DFSDM_CHANNEL_OFFSET(hdfsdm_channel->Init.Offset));
312 assert_param(IS_DFSDM_CHANNEL_RIGHT_BIT_SHIFT(hdfsdm_channel->Init.RightBitShift));
315 if(a_dfsdm1ChannelHandle[DFSDM_GetChannelFromInstance(hdfsdm_channel->Instance)] !=
NULL)
321 HAL_DFSDM_ChannelMspInit(hdfsdm_channel);
324 v_dfsdm1ChannelCounter++;
327 if(v_dfsdm1ChannelCounter == 1)
329 assert_param(IS_DFSDM_CHANNEL_OUTPUT_CLOCK(hdfsdm_channel->Init.OutputClock.Selection));
332 DFSDM1_Channel0->CHCFGR1 |= hdfsdm_channel->Init.OutputClock.Selection;
336 if(hdfsdm_channel->Init.OutputClock.Activation ==
ENABLE)
338 assert_param(IS_DFSDM_CHANNEL_OUTPUT_CLOCK_DIVIDER(hdfsdm_channel->Init.OutputClock.Divider));
340 DFSDM1_Channel0->CHCFGR1 |= (uint32_t) ((hdfsdm_channel->Init.OutputClock.Divider - 1) <<
341 DFSDM_CHCFGR1_CLK_DIV_OFFSET);
351 hdfsdm_channel->Instance->CHCFGR1 |= (hdfsdm_channel->Init.Input.Multiplexer |
352 hdfsdm_channel->Init.Input.DataPacking |
353 hdfsdm_channel->Init.Input.Pins);
357 hdfsdm_channel->Instance->CHCFGR1 |= (hdfsdm_channel->Init.SerialInterface.Type |
358 hdfsdm_channel->Init.SerialInterface.SpiClock);
362 hdfsdm_channel->Instance->CHAWSCDR |= (hdfsdm_channel->Init.Awd.FilterOrder |
363 ((hdfsdm_channel->Init.Awd.Oversampling - 1) << DFSDM_CHAWSCDR_FOSR_OFFSET));
367 hdfsdm_channel->Instance->CHCFGR2 |= (((uint32_t) hdfsdm_channel->Init.Offset << DFSDM_CHCFGR2_OFFSET_OFFSET) |
368 (hdfsdm_channel->Init.RightBitShift << DFSDM_CHCFGR2_DTRBS_OFFSET));
374 hdfsdm_channel->State = HAL_DFSDM_CHANNEL_STATE_READY;
377 a_dfsdm1ChannelHandle[DFSDM_GetChannelFromInstance(hdfsdm_channel->Instance)] = hdfsdm_channel;
387 HAL_StatusTypeDef HAL_DFSDM_ChannelDeInit(DFSDM_Channel_HandleTypeDef *hdfsdm_channel)
390 if(hdfsdm_channel ==
NULL)
399 if(a_dfsdm1ChannelHandle[DFSDM_GetChannelFromInstance(hdfsdm_channel->Instance)] ==
NULL)
408 v_dfsdm1ChannelCounter--;
411 if(v_dfsdm1ChannelCounter == 0)
417 HAL_DFSDM_ChannelMspDeInit(hdfsdm_channel);
420 hdfsdm_channel->State = HAL_DFSDM_CHANNEL_STATE_RESET;
423 a_dfsdm1ChannelHandle[DFSDM_GetChannelFromInstance(hdfsdm_channel->Instance)] = (DFSDM_Channel_HandleTypeDef *)
NULL;
433 __weak
void HAL_DFSDM_ChannelMspInit(DFSDM_Channel_HandleTypeDef *hdfsdm_channel)
448 __weak
void HAL_DFSDM_ChannelMspDeInit(DFSDM_Channel_HandleTypeDef *hdfsdm_channel)
487 HAL_StatusTypeDef HAL_DFSDM_ChannelCkabStart(DFSDM_Channel_HandleTypeDef *hdfsdm_channel)
497 if(hdfsdm_channel->State != HAL_DFSDM_CHANNEL_STATE_READY)
505 channel = DFSDM_GetChannelFromInstance(hdfsdm_channel->Instance);
513 DFSDM1_Filter0->FLTICR = (1 << (DFSDM_FLTICR_CLRCKABF_OFFSET + channel));
540 HAL_StatusTypeDef HAL_DFSDM_ChannelPollForCkab(DFSDM_Channel_HandleTypeDef *hdfsdm_channel,
550 if(hdfsdm_channel->State != HAL_DFSDM_CHANNEL_STATE_READY)
558 channel = DFSDM_GetChannelFromInstance(hdfsdm_channel->Instance);
569 if((Timeout == 0) || ((
HAL_GetTick()-tickstart) > Timeout))
578 DFSDM1_Filter0->FLTICR = (1 << (DFSDM_FLTICR_CLRCKABF_OFFSET + channel));
590 HAL_StatusTypeDef HAL_DFSDM_ChannelCkabStop(DFSDM_Channel_HandleTypeDef *hdfsdm_channel)
599 if(hdfsdm_channel->State != HAL_DFSDM_CHANNEL_STATE_READY)
610 channel = DFSDM_GetChannelFromInstance(hdfsdm_channel->Instance);
611 DFSDM1_Filter0->FLTICR = (1 << (DFSDM_FLTICR_CLRCKABF_OFFSET + channel));
626 HAL_StatusTypeDef HAL_DFSDM_ChannelCkabStart_IT(DFSDM_Channel_HandleTypeDef *hdfsdm_channel)
636 if(hdfsdm_channel->State != HAL_DFSDM_CHANNEL_STATE_READY)
644 channel = DFSDM_GetChannelFromInstance(hdfsdm_channel->Instance);
652 DFSDM1_Filter0->FLTICR = (1 << (DFSDM_FLTICR_CLRCKABF_OFFSET + channel));
681 __weak
void HAL_DFSDM_ChannelCkabCallback(DFSDM_Channel_HandleTypeDef *hdfsdm_channel)
697 HAL_StatusTypeDef HAL_DFSDM_ChannelCkabStop_IT(DFSDM_Channel_HandleTypeDef *hdfsdm_channel)
706 if(hdfsdm_channel->State != HAL_DFSDM_CHANNEL_STATE_READY)
717 channel = DFSDM_GetChannelFromInstance(hdfsdm_channel->Instance);
718 DFSDM1_Filter0->FLTICR = (1 << (DFSDM_FLTICR_CLRCKABF_OFFSET + channel));
737 HAL_StatusTypeDef HAL_DFSDM_ChannelScdStart(DFSDM_Channel_HandleTypeDef *hdfsdm_channel,
739 uint32_t BreakSignal)
745 assert_param(IS_DFSDM_CHANNEL_SCD_THRESHOLD(Threshold));
749 if(hdfsdm_channel->State != HAL_DFSDM_CHANNEL_STATE_READY)
758 hdfsdm_channel->Instance->CHAWSCDR |= ((BreakSignal << DFSDM_CHAWSCDR_BKSCD_OFFSET) | \
774 HAL_StatusTypeDef HAL_DFSDM_ChannelPollForScd(DFSDM_Channel_HandleTypeDef *hdfsdm_channel,
784 if(hdfsdm_channel->State != HAL_DFSDM_CHANNEL_STATE_READY)
792 channel = DFSDM_GetChannelFromInstance(hdfsdm_channel->Instance);
803 if((Timeout == 0) || ((
HAL_GetTick()-tickstart) > Timeout))
812 DFSDM1_Filter0->FLTICR = (1 << (DFSDM_FLTICR_CLRSCDF_OFFSET + channel));
824 HAL_StatusTypeDef HAL_DFSDM_ChannelScdStop(DFSDM_Channel_HandleTypeDef *hdfsdm_channel)
833 if(hdfsdm_channel->State != HAL_DFSDM_CHANNEL_STATE_READY)
844 channel = DFSDM_GetChannelFromInstance(hdfsdm_channel->Instance);
845 DFSDM1_Filter0->FLTICR = (1 << (DFSDM_FLTICR_CLRSCDF_OFFSET + channel));
861 HAL_StatusTypeDef HAL_DFSDM_ChannelScdStart_IT(DFSDM_Channel_HandleTypeDef *hdfsdm_channel,
863 uint32_t BreakSignal)
869 assert_param(IS_DFSDM_CHANNEL_SCD_THRESHOLD(Threshold));
873 if(hdfsdm_channel->State != HAL_DFSDM_CHANNEL_STATE_READY)
885 hdfsdm_channel->Instance->CHAWSCDR |= ((BreakSignal << DFSDM_CHAWSCDR_BKSCD_OFFSET) | \
900 __weak
void HAL_DFSDM_ChannelScdCallback(DFSDM_Channel_HandleTypeDef *hdfsdm_channel)
916 HAL_StatusTypeDef HAL_DFSDM_ChannelScdStop_IT(DFSDM_Channel_HandleTypeDef *hdfsdm_channel)
925 if(hdfsdm_channel->State != HAL_DFSDM_CHANNEL_STATE_READY)
936 channel = DFSDM_GetChannelFromInstance(hdfsdm_channel->Instance);
937 DFSDM1_Filter0->FLTICR = (1 << (DFSDM_FLTICR_CLRSCDF_OFFSET + channel));
951 int16_t HAL_DFSDM_ChannelGetAwdValue(DFSDM_Channel_HandleTypeDef *hdfsdm_channel)
953 return (int16_t) hdfsdm_channel->Instance->CHWDATAR;
963 HAL_StatusTypeDef HAL_DFSDM_ChannelModifyOffset(DFSDM_Channel_HandleTypeDef *hdfsdm_channel,
973 if(hdfsdm_channel->State != HAL_DFSDM_CHANNEL_STATE_READY)
982 hdfsdm_channel->Instance->CHCFGR2 |= ((uint32_t) Offset << DFSDM_CHCFGR2_OFFSET_OFFSET);
1010 HAL_DFSDM_Channel_StateTypeDef HAL_DFSDM_ChannelGetState(DFSDM_Channel_HandleTypeDef *hdfsdm_channel)
1013 return hdfsdm_channel->State;
1040 HAL_StatusTypeDef HAL_DFSDM_FilterInit(DFSDM_Filter_HandleTypeDef *hdfsdm_filter)
1043 if(hdfsdm_filter ==
NULL)
1050 assert_param(IS_DFSDM_FILTER_REG_TRIGGER(hdfsdm_filter->Init.RegularParam.Trigger));
1053 assert_param(IS_DFSDM_FILTER_INJ_TRIGGER(hdfsdm_filter->Init.InjectedParam.Trigger));
1056 assert_param(IS_DFSDM_FILTER_SINC_ORDER(hdfsdm_filter->Init.FilterParam.SincOrder));
1057 assert_param(IS_DFSDM_FILTER_OVS_RATIO(hdfsdm_filter->Init.FilterParam.Oversampling));
1058 assert_param(IS_DFSDM_FILTER_INTEGRATOR_OVS_RATIO(hdfsdm_filter->Init.FilterParam.IntOversampling));
1062 ((hdfsdm_filter->Init.RegularParam.Trigger == DFSDM_FILTER_SYNC_TRIGGER) ||
1063 (hdfsdm_filter->Init.InjectedParam.Trigger == DFSDM_FILTER_SYNC_TRIGGER)))
1069 hdfsdm_filter->RegularContMode = DFSDM_CONTINUOUS_CONV_OFF;
1070 hdfsdm_filter->InjectedChannelsNbr = 1;
1071 hdfsdm_filter->InjConvRemaining = 1;
1072 hdfsdm_filter->ErrorCode = DFSDM_FILTER_ERROR_NONE;
1075 HAL_DFSDM_FilterMspInit(hdfsdm_filter);
1079 if(hdfsdm_filter->Init.RegularParam.FastMode ==
ENABLE)
1088 if(hdfsdm_filter->Init.RegularParam.DmaMode ==
ENABLE)
1099 if(hdfsdm_filter->Init.InjectedParam.Trigger == DFSDM_FILTER_EXT_TRIGGER)
1101 assert_param(IS_DFSDM_FILTER_EXT_TRIG(hdfsdm_filter->Init.InjectedParam.ExtTrigger));
1102 assert_param(IS_DFSDM_FILTER_EXT_TRIG_EDGE(hdfsdm_filter->Init.InjectedParam.ExtTriggerEdge));
1103 hdfsdm_filter->Instance->FLTCR1 |= (hdfsdm_filter->Init.InjectedParam.ExtTrigger);
1106 if(hdfsdm_filter->Init.InjectedParam.ScanMode ==
ENABLE)
1115 if(hdfsdm_filter->Init.InjectedParam.DmaMode ==
ENABLE)
1126 hdfsdm_filter->Instance->FLTFCR |= (hdfsdm_filter->Init.FilterParam.SincOrder |
1127 ((hdfsdm_filter->Init.FilterParam.Oversampling - 1) << DFSDM_FLTFCR_FOSR_OFFSET) |
1128 (hdfsdm_filter->Init.FilterParam.IntOversampling - 1));
1131 hdfsdm_filter->RegularTrigger = hdfsdm_filter->Init.RegularParam.Trigger;
1132 hdfsdm_filter->InjectedTrigger = hdfsdm_filter->Init.InjectedParam.Trigger;
1133 hdfsdm_filter->ExtTriggerEdge = hdfsdm_filter->Init.InjectedParam.ExtTriggerEdge;
1134 hdfsdm_filter->InjectedScanMode = hdfsdm_filter->Init.InjectedParam.ScanMode;
1140 hdfsdm_filter->State = HAL_DFSDM_FILTER_STATE_READY;
1150 HAL_StatusTypeDef HAL_DFSDM_FilterDeInit(DFSDM_Filter_HandleTypeDef *hdfsdm_filter)
1153 if(hdfsdm_filter ==
NULL)
1165 HAL_DFSDM_FilterMspDeInit(hdfsdm_filter);
1168 hdfsdm_filter->State = HAL_DFSDM_FILTER_STATE_RESET;
1178 __weak
void HAL_DFSDM_FilterMspInit(DFSDM_Filter_HandleTypeDef *hdfsdm_filter)
1193 __weak
void HAL_DFSDM_FilterMspDeInit(DFSDM_Filter_HandleTypeDef *hdfsdm_filter)
1231 HAL_StatusTypeDef HAL_DFSDM_FilterConfigRegChannel(DFSDM_Filter_HandleTypeDef *hdfsdm_filter,
1233 uint32_t ContinuousMode)
1240 assert_param(IS_DFSDM_CONTINUOUS_MODE(ContinuousMode));
1243 if((hdfsdm_filter->State != HAL_DFSDM_FILTER_STATE_RESET) &&
1244 (hdfsdm_filter->State != HAL_DFSDM_FILTER_STATE_ERROR))
1248 if(ContinuousMode == DFSDM_CONTINUOUS_CONV_ON)
1250 hdfsdm_filter->Instance->FLTCR1 |= (uint32_t) (((Channel & DFSDM_MSB_MASK) << DFSDM_FLTCR1_MSB_RCH_OFFSET) |
1255 hdfsdm_filter->Instance->FLTCR1 |= (uint32_t) ((Channel & DFSDM_MSB_MASK) << DFSDM_FLTCR1_MSB_RCH_OFFSET);
1258 hdfsdm_filter->RegularContMode = ContinuousMode;
1276 HAL_StatusTypeDef HAL_DFSDM_FilterConfigInjChannel(DFSDM_Filter_HandleTypeDef *hdfsdm_filter,
1286 if((hdfsdm_filter->State != HAL_DFSDM_FILTER_STATE_RESET) &&
1287 (hdfsdm_filter->State != HAL_DFSDM_FILTER_STATE_ERROR))
1290 hdfsdm_filter->Instance->FLTJCHGR = (uint32_t) (Channel & DFSDM_LSB_MASK);
1292 hdfsdm_filter->InjectedChannelsNbr = DFSDM_GetInjChannelsNbr(Channel);
1294 hdfsdm_filter->InjConvRemaining = (hdfsdm_filter->InjectedScanMode ==
ENABLE) ? \
1295 hdfsdm_filter->InjectedChannelsNbr : 1;
1346 HAL_StatusTypeDef HAL_DFSDM_FilterRegularStart(DFSDM_Filter_HandleTypeDef *hdfsdm_filter)
1354 if((hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_READY) || \
1355 (hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_INJ))
1358 DFSDM_RegConvStart(hdfsdm_filter);
1375 HAL_StatusTypeDef HAL_DFSDM_FilterPollForRegConversion(DFSDM_Filter_HandleTypeDef *hdfsdm_filter,
1384 if((hdfsdm_filter->State != HAL_DFSDM_FILTER_STATE_REG) && \
1385 (hdfsdm_filter->State != HAL_DFSDM_FILTER_STATE_REG_INJ))
1401 if((Timeout == 0) || ((
HAL_GetTick()-tickstart) > Timeout))
1412 hdfsdm_filter->ErrorCode = DFSDM_FILTER_ERROR_REGULAR_OVERRUN;
1413 HAL_DFSDM_FilterErrorCallback(hdfsdm_filter);
1419 if((hdfsdm_filter->RegularContMode == DFSDM_CONTINUOUS_CONV_OFF) && \
1420 (hdfsdm_filter->RegularTrigger == DFSDM_FILTER_SW_TRIGGER))
1422 hdfsdm_filter->State = (hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_REG) ? \
1423 HAL_DFSDM_FILTER_STATE_READY : HAL_DFSDM_FILTER_STATE_INJ;
1436 HAL_StatusTypeDef HAL_DFSDM_FilterRegularStop(DFSDM_Filter_HandleTypeDef *hdfsdm_filter)
1444 if((hdfsdm_filter->State != HAL_DFSDM_FILTER_STATE_REG) && \
1445 (hdfsdm_filter->State != HAL_DFSDM_FILTER_STATE_REG_INJ))
1453 DFSDM_RegConvStop(hdfsdm_filter);
1466 HAL_StatusTypeDef HAL_DFSDM_FilterRegularStart_IT(DFSDM_Filter_HandleTypeDef *hdfsdm_filter)
1474 if((hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_READY) || \
1475 (hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_INJ))
1481 DFSDM_RegConvStart(hdfsdm_filter);
1497 HAL_StatusTypeDef HAL_DFSDM_FilterRegularStop_IT(DFSDM_Filter_HandleTypeDef *hdfsdm_filter)
1505 if((hdfsdm_filter->State != HAL_DFSDM_FILTER_STATE_REG) && \
1506 (hdfsdm_filter->State != HAL_DFSDM_FILTER_STATE_REG_INJ))
1517 DFSDM_RegConvStop(hdfsdm_filter);
1535 HAL_StatusTypeDef HAL_DFSDM_FilterRegularStart_DMA(DFSDM_Filter_HandleTypeDef *hdfsdm_filter,
1545 if((pData ==
NULL) || (Length == 0))
1555 else if((hdfsdm_filter->RegularTrigger == DFSDM_FILTER_SW_TRIGGER) && \
1556 (hdfsdm_filter->RegularContMode == DFSDM_CONTINUOUS_CONV_OFF) && \
1557 (hdfsdm_filter->hdmaReg->Init.Mode ==
DMA_NORMAL) && \
1562 else if((hdfsdm_filter->RegularTrigger == DFSDM_FILTER_SW_TRIGGER) && \
1563 (hdfsdm_filter->RegularContMode == DFSDM_CONTINUOUS_CONV_OFF) && \
1569 else if((hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_READY) || \
1570 (hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_INJ))
1573 hdfsdm_filter->hdmaReg->XferCpltCallback = DFSDM_DMARegularConvCplt;
1574 hdfsdm_filter->hdmaReg->XferErrorCallback = DFSDM_DMAError;
1575 hdfsdm_filter->hdmaReg->XferHalfCpltCallback = (hdfsdm_filter->hdmaReg->Init.Mode ==
DMA_CIRCULAR) ?\
1576 DFSDM_DMARegularHalfConvCplt :
NULL;
1579 if(
HAL_DMA_Start_IT(hdfsdm_filter->hdmaReg, (uint32_t)&hdfsdm_filter->Instance->FLTRDATAR, \
1580 (uint32_t) pData, Length) !=
HAL_OK)
1583 hdfsdm_filter->State = HAL_DFSDM_FILTER_STATE_ERROR;
1589 DFSDM_RegConvStart(hdfsdm_filter);
1612 HAL_StatusTypeDef HAL_DFSDM_FilterRegularMsbStart_DMA(DFSDM_Filter_HandleTypeDef *hdfsdm_filter,
1622 if((pData ==
NULL) || (Length == 0))
1632 else if((hdfsdm_filter->RegularTrigger == DFSDM_FILTER_SW_TRIGGER) && \
1633 (hdfsdm_filter->RegularContMode == DFSDM_CONTINUOUS_CONV_OFF) && \
1634 (hdfsdm_filter->hdmaReg->Init.Mode ==
DMA_NORMAL) && \
1639 else if((hdfsdm_filter->RegularTrigger == DFSDM_FILTER_SW_TRIGGER) && \
1640 (hdfsdm_filter->RegularContMode == DFSDM_CONTINUOUS_CONV_OFF) && \
1646 else if((hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_READY) || \
1647 (hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_INJ))
1650 hdfsdm_filter->hdmaReg->XferCpltCallback = DFSDM_DMARegularConvCplt;
1651 hdfsdm_filter->hdmaReg->XferErrorCallback = DFSDM_DMAError;
1652 hdfsdm_filter->hdmaReg->XferHalfCpltCallback = (hdfsdm_filter->hdmaReg->Init.Mode ==
DMA_CIRCULAR) ?\
1653 DFSDM_DMARegularHalfConvCplt :
NULL;
1656 if(
HAL_DMA_Start_IT(hdfsdm_filter->hdmaReg, (uint32_t)(&hdfsdm_filter->Instance->FLTRDATAR) + 2, \
1657 (uint32_t) pData, Length) !=
HAL_OK)
1660 hdfsdm_filter->State = HAL_DFSDM_FILTER_STATE_ERROR;
1666 DFSDM_RegConvStart(hdfsdm_filter);
1683 HAL_StatusTypeDef HAL_DFSDM_FilterRegularStop_DMA(DFSDM_Filter_HandleTypeDef *hdfsdm_filter)
1691 if((hdfsdm_filter->State != HAL_DFSDM_FILTER_STATE_REG) && \
1692 (hdfsdm_filter->State != HAL_DFSDM_FILTER_STATE_REG_INJ))
1703 hdfsdm_filter->State = HAL_DFSDM_FILTER_STATE_ERROR;
1709 DFSDM_RegConvStop(hdfsdm_filter);
1722 int32_t HAL_DFSDM_FilterGetRegularValue(DFSDM_Filter_HandleTypeDef *hdfsdm_filter,
1733 reg = hdfsdm_filter->Instance->FLTRDATAR;
1750 HAL_StatusTypeDef HAL_DFSDM_FilterInjectedStart(DFSDM_Filter_HandleTypeDef *hdfsdm_filter)
1758 if((hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_READY) || \
1759 (hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_REG))
1762 DFSDM_InjConvStart(hdfsdm_filter);
1779 HAL_StatusTypeDef HAL_DFSDM_FilterPollForInjConversion(DFSDM_Filter_HandleTypeDef *hdfsdm_filter,
1788 if((hdfsdm_filter->State != HAL_DFSDM_FILTER_STATE_INJ) && \
1789 (hdfsdm_filter->State != HAL_DFSDM_FILTER_STATE_REG_INJ))
1805 if((Timeout == 0) || ((
HAL_GetTick()-tickstart) > Timeout))
1816 hdfsdm_filter->ErrorCode = DFSDM_FILTER_ERROR_INJECTED_OVERRUN;
1817 HAL_DFSDM_FilterErrorCallback(hdfsdm_filter);
1824 hdfsdm_filter->InjConvRemaining--;
1825 if(hdfsdm_filter->InjConvRemaining == 0)
1828 if(hdfsdm_filter->InjectedTrigger == DFSDM_FILTER_SW_TRIGGER)
1830 hdfsdm_filter->State = (hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_INJ) ? \
1831 HAL_DFSDM_FILTER_STATE_READY : HAL_DFSDM_FILTER_STATE_REG;
1835 hdfsdm_filter->InjConvRemaining = (hdfsdm_filter->InjectedScanMode ==
ENABLE) ? \
1836 hdfsdm_filter->InjectedChannelsNbr : 1;
1850 HAL_StatusTypeDef HAL_DFSDM_FilterInjectedStop(DFSDM_Filter_HandleTypeDef *hdfsdm_filter)
1858 if((hdfsdm_filter->State != HAL_DFSDM_FILTER_STATE_INJ) && \
1859 (hdfsdm_filter->State != HAL_DFSDM_FILTER_STATE_REG_INJ))
1867 DFSDM_InjConvStop(hdfsdm_filter);
1880 HAL_StatusTypeDef HAL_DFSDM_FilterInjectedStart_IT(DFSDM_Filter_HandleTypeDef *hdfsdm_filter)
1888 if((hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_READY) || \
1889 (hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_REG))
1895 DFSDM_InjConvStart(hdfsdm_filter);
1911 HAL_StatusTypeDef HAL_DFSDM_FilterInjectedStop_IT(DFSDM_Filter_HandleTypeDef *hdfsdm_filter)
1919 if((hdfsdm_filter->State != HAL_DFSDM_FILTER_STATE_INJ) && \
1920 (hdfsdm_filter->State != HAL_DFSDM_FILTER_STATE_REG_INJ))
1931 DFSDM_InjConvStop(hdfsdm_filter);
1949 HAL_StatusTypeDef HAL_DFSDM_FilterInjectedStart_DMA(DFSDM_Filter_HandleTypeDef *hdfsdm_filter,
1959 if((pData ==
NULL) || (Length == 0))
1969 else if((hdfsdm_filter->InjectedTrigger == DFSDM_FILTER_SW_TRIGGER) && \
1970 (hdfsdm_filter->hdmaInj->Init.Mode ==
DMA_NORMAL) && \
1971 (Length > hdfsdm_filter->InjConvRemaining))
1975 else if((hdfsdm_filter->InjectedTrigger == DFSDM_FILTER_SW_TRIGGER) && \
1981 else if((hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_READY) || \
1982 (hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_REG))
1985 hdfsdm_filter->hdmaInj->XferCpltCallback = DFSDM_DMAInjectedConvCplt;
1986 hdfsdm_filter->hdmaInj->XferErrorCallback = DFSDM_DMAError;
1987 hdfsdm_filter->hdmaInj->XferHalfCpltCallback = (hdfsdm_filter->hdmaInj->Init.Mode ==
DMA_CIRCULAR) ?\
1988 DFSDM_DMAInjectedHalfConvCplt :
NULL;
1991 if(
HAL_DMA_Start_IT(hdfsdm_filter->hdmaInj, (uint32_t)&hdfsdm_filter->Instance->FLTJDATAR, \
1992 (uint32_t) pData, Length) !=
HAL_OK)
1995 hdfsdm_filter->State = HAL_DFSDM_FILTER_STATE_ERROR;
2001 DFSDM_InjConvStart(hdfsdm_filter);
2024 HAL_StatusTypeDef HAL_DFSDM_FilterInjectedMsbStart_DMA(DFSDM_Filter_HandleTypeDef *hdfsdm_filter,
2034 if((pData ==
NULL) || (Length == 0))
2044 else if((hdfsdm_filter->InjectedTrigger == DFSDM_FILTER_SW_TRIGGER) && \
2045 (hdfsdm_filter->hdmaInj->Init.Mode ==
DMA_NORMAL) && \
2046 (Length > hdfsdm_filter->InjConvRemaining))
2050 else if((hdfsdm_filter->InjectedTrigger == DFSDM_FILTER_SW_TRIGGER) && \
2056 else if((hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_READY) || \
2057 (hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_REG))
2060 hdfsdm_filter->hdmaInj->XferCpltCallback = DFSDM_DMAInjectedConvCplt;
2061 hdfsdm_filter->hdmaInj->XferErrorCallback = DFSDM_DMAError;
2062 hdfsdm_filter->hdmaInj->XferHalfCpltCallback = (hdfsdm_filter->hdmaInj->Init.Mode ==
DMA_CIRCULAR) ?\
2063 DFSDM_DMAInjectedHalfConvCplt :
NULL;
2066 if(
HAL_DMA_Start_IT(hdfsdm_filter->hdmaInj, (uint32_t)(&hdfsdm_filter->Instance->FLTJDATAR) + 2, \
2067 (uint32_t) pData, Length) !=
HAL_OK)
2070 hdfsdm_filter->State = HAL_DFSDM_FILTER_STATE_ERROR;
2076 DFSDM_InjConvStart(hdfsdm_filter);
2093 HAL_StatusTypeDef HAL_DFSDM_FilterInjectedStop_DMA(DFSDM_Filter_HandleTypeDef *hdfsdm_filter)
2101 if((hdfsdm_filter->State != HAL_DFSDM_FILTER_STATE_INJ) && \
2102 (hdfsdm_filter->State != HAL_DFSDM_FILTER_STATE_REG_INJ))
2113 hdfsdm_filter->State = HAL_DFSDM_FILTER_STATE_ERROR;
2119 DFSDM_InjConvStop(hdfsdm_filter);
2132 int32_t HAL_DFSDM_FilterGetInjectedValue(DFSDM_Filter_HandleTypeDef *hdfsdm_filter,
2143 reg = hdfsdm_filter->Instance->FLTJDATAR;
2159 HAL_StatusTypeDef HAL_DFSDM_FilterAwdStart_IT(DFSDM_Filter_HandleTypeDef *hdfsdm_filter,
2160 DFSDM_Filter_AwdParamTypeDef *awdParam)
2166 assert_param(IS_DFSDM_FILTER_AWD_DATA_SOURCE(awdParam->DataSource));
2167 assert_param(IS_DFSDM_INJECTED_CHANNEL(awdParam->Channel));
2168 assert_param(IS_DFSDM_FILTER_AWD_THRESHOLD(awdParam->HighThreshold));
2169 assert_param(IS_DFSDM_FILTER_AWD_THRESHOLD(awdParam->LowThreshold));
2170 assert_param(IS_DFSDM_BREAK_SIGNALS(awdParam->HighBreakSignal));
2171 assert_param(IS_DFSDM_BREAK_SIGNALS(awdParam->LowBreakSignal));
2174 if((hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_RESET) || \
2175 (hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_ERROR))
2184 hdfsdm_filter->Instance->FLTCR1 |= awdParam->DataSource;
2188 hdfsdm_filter->Instance->FLTAWHTR |= (((uint32_t) awdParam->HighThreshold << DFSDM_FLTAWHTR_THRESHOLD_OFFSET) | \
2189 awdParam->HighBreakSignal);
2191 hdfsdm_filter->Instance->FLTAWLTR |= (((uint32_t) awdParam->LowThreshold << DFSDM_FLTAWLTR_THRESHOLD_OFFSET) | \
2192 awdParam->LowBreakSignal);
2196 hdfsdm_filter->Instance->FLTCR2 |= (((awdParam->Channel & DFSDM_LSB_MASK) << DFSDM_FLTCR2_AWDCH_OFFSET) | \
2197 DFSDM_FLTCR2_AWDIE);
2208 HAL_StatusTypeDef HAL_DFSDM_FilterAwdStop_IT(DFSDM_Filter_HandleTypeDef *hdfsdm_filter)
2216 if((hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_RESET) || \
2217 (hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_ERROR))
2248 HAL_StatusTypeDef HAL_DFSDM_FilterExdStart(DFSDM_Filter_HandleTypeDef *hdfsdm_filter,
2258 if((hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_RESET) || \
2259 (hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_ERROR))
2268 hdfsdm_filter->Instance->FLTCR2 |= ((Channel & DFSDM_LSB_MASK) << DFSDM_FLTCR2_EXCH_OFFSET);
2279 HAL_StatusTypeDef HAL_DFSDM_FilterExdStop(DFSDM_Filter_HandleTypeDef *hdfsdm_filter)
2289 if((hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_RESET) || \
2290 (hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_ERROR))
2301 reg1 = hdfsdm_filter->Instance->FLTEXMAX;
2302 reg2 = hdfsdm_filter->Instance->FLTEXMIN;
2317 int32_t HAL_DFSDM_FilterGetExdMaxValue(DFSDM_Filter_HandleTypeDef *hdfsdm_filter,
2328 reg = hdfsdm_filter->Instance->FLTEXMAX;
2345 int32_t HAL_DFSDM_FilterGetExdMinValue(DFSDM_Filter_HandleTypeDef *hdfsdm_filter,
2356 reg = hdfsdm_filter->Instance->FLTEXMIN;
2372 uint32_t HAL_DFSDM_FilterGetConvTimeValue(DFSDM_Filter_HandleTypeDef *hdfsdm_filter)
2381 reg = hdfsdm_filter->Instance->FLTCNVTIMR;
2395 void HAL_DFSDM_IRQHandler(DFSDM_Filter_HandleTypeDef *hdfsdm_filter)
2405 hdfsdm_filter->ErrorCode = DFSDM_FILTER_ERROR_REGULAR_OVERRUN;
2408 HAL_DFSDM_FilterErrorCallback(hdfsdm_filter);
2418 hdfsdm_filter->ErrorCode = DFSDM_FILTER_ERROR_INJECTED_OVERRUN;
2421 HAL_DFSDM_FilterErrorCallback(hdfsdm_filter);
2431 if((hdfsdm_filter->RegularContMode == DFSDM_CONTINUOUS_CONV_OFF) && \
2432 (hdfsdm_filter->RegularTrigger == DFSDM_FILTER_SW_TRIGGER))
2438 hdfsdm_filter->State = (hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_REG) ? \
2439 HAL_DFSDM_FILTER_STATE_READY : HAL_DFSDM_FILTER_STATE_INJ;
2447 HAL_DFSDM_FilterInjConvCpltCallback(hdfsdm_filter);
2450 hdfsdm_filter->InjConvRemaining--;
2451 if(hdfsdm_filter->InjConvRemaining == 0)
2454 if(hdfsdm_filter->InjectedTrigger == DFSDM_FILTER_SW_TRIGGER)
2460 hdfsdm_filter->State = (hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_INJ) ? \
2461 HAL_DFSDM_FILTER_STATE_READY : HAL_DFSDM_FILTER_STATE_REG;
2464 hdfsdm_filter->InjConvRemaining = (hdfsdm_filter->InjectedScanMode ==
ENABLE) ? \
2465 hdfsdm_filter->InjectedChannelsNbr : 1;
2473 uint32_t threshold = 0;
2474 uint32_t channel = 0;
2477 reg = hdfsdm_filter->Instance->FLTAWSR;
2478 threshold = ((reg &
DFSDM_FLTAWSR_AWLTF) != 0) ? DFSDM_AWD_LOW_THRESHOLD : DFSDM_AWD_HIGH_THRESHOLD;
2479 if(threshold == DFSDM_AWD_HIGH_THRESHOLD)
2481 reg = reg >> DFSDM_FLTAWSR_HIGH_OFFSET;
2483 while((reg & 1) == 0)
2489 hdfsdm_filter->Instance->FLTAWCFR = (threshold == DFSDM_AWD_HIGH_THRESHOLD) ? \
2490 (1 << (DFSDM_FLTAWSR_HIGH_OFFSET + channel)) : \
2494 HAL_DFSDM_FilterAwdCallback(hdfsdm_filter, channel, threshold);
2502 uint32_t channel = 0;
2504 reg = ((hdfsdm_filter->Instance->FLTISR &
DFSDM_FLTISR_CKABF) >> DFSDM_FLTISR_CKABF_OFFSET);
2506 while(channel < DFSDM1_CHANNEL_NUMBER)
2509 if(((reg & 1) != 0) && (a_dfsdm1ChannelHandle[channel] !=
NULL))
2515 hdfsdm_filter->Instance->FLTICR = (1 << (DFSDM_FLTICR_CLRCKABF_OFFSET + channel));
2518 HAL_DFSDM_ChannelCkabCallback(a_dfsdm1ChannelHandle[channel]);
2531 uint32_t channel = 0;
2534 reg = ((hdfsdm_filter->Instance->FLTISR &
DFSDM_FLTISR_SCDF) >> DFSDM_FLTISR_SCDF_OFFSET);
2535 while((reg & 1) == 0)
2542 hdfsdm_filter->Instance->FLTICR = (1 << (DFSDM_FLTICR_CLRSCDF_OFFSET + channel));
2545 HAL_DFSDM_ChannelScdCallback(a_dfsdm1ChannelHandle[channel]);
2588 __weak
void HAL_DFSDM_FilterInjConvCpltCallback(DFSDM_Filter_HandleTypeDef *hdfsdm_filter)
2603 __weak
void HAL_DFSDM_FilterInjConvHalfCpltCallback(DFSDM_Filter_HandleTypeDef *hdfsdm_filter)
2620 __weak
void HAL_DFSDM_FilterAwdCallback(DFSDM_Filter_HandleTypeDef *hdfsdm_filter,
2621 uint32_t Channel, uint32_t Threshold)
2638 __weak
void HAL_DFSDM_FilterErrorCallback(DFSDM_Filter_HandleTypeDef *hdfsdm_filter)
2671 HAL_DFSDM_Filter_StateTypeDef HAL_DFSDM_FilterGetState(DFSDM_Filter_HandleTypeDef *hdfsdm_filter)
2674 return hdfsdm_filter->State;
2682 uint32_t HAL_DFSDM_FilterGetError(DFSDM_Filter_HandleTypeDef *hdfsdm_filter)
2684 return hdfsdm_filter->ErrorCode;
2709 DFSDM_Filter_HandleTypeDef* hdfsdm_filter = (DFSDM_Filter_HandleTypeDef*) ((
DMA_HandleTypeDef*)hdma)->Parent;
2723 DFSDM_Filter_HandleTypeDef* hdfsdm_filter = (DFSDM_Filter_HandleTypeDef*) ((
DMA_HandleTypeDef*)hdma)->Parent;
2737 DFSDM_Filter_HandleTypeDef* hdfsdm_filter = (DFSDM_Filter_HandleTypeDef*) ((
DMA_HandleTypeDef*)hdma)->Parent;
2740 HAL_DFSDM_FilterInjConvHalfCpltCallback(hdfsdm_filter);
2751 DFSDM_Filter_HandleTypeDef* hdfsdm_filter = (DFSDM_Filter_HandleTypeDef*) ((
DMA_HandleTypeDef*)hdma)->Parent;
2754 HAL_DFSDM_FilterInjConvCpltCallback(hdfsdm_filter);
2765 DFSDM_Filter_HandleTypeDef* hdfsdm_filter = (DFSDM_Filter_HandleTypeDef*) ((
DMA_HandleTypeDef*)hdma)->Parent;
2768 hdfsdm_filter->ErrorCode = DFSDM_FILTER_ERROR_DMA;
2771 HAL_DFSDM_FilterErrorCallback(hdfsdm_filter);
2779 static uint32_t DFSDM_GetInjChannelsNbr(uint32_t Channels)
2781 uint32_t nbChannels = 0;
2785 tmp = (uint32_t) (Channels & DFSDM_LSB_MASK);
2792 tmp = (uint32_t) (tmp >> 1);
2804 uint32_t channel = 0xFF;
2848 static void DFSDM_RegConvStart(DFSDM_Filter_HandleTypeDef* hdfsdm_filter)
2851 if(hdfsdm_filter->RegularTrigger == DFSDM_FILTER_SW_TRIGGER)
2868 if(hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_INJ)
2870 if(hdfsdm_filter->InjectedTrigger == DFSDM_FILTER_SW_TRIGGER)
2875 hdfsdm_filter->InjConvRemaining = (hdfsdm_filter->InjectedScanMode ==
ENABLE) ? \
2876 hdfsdm_filter->InjectedChannelsNbr : 1;
2880 hdfsdm_filter->State = (hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_READY) ? \
2881 HAL_DFSDM_FILTER_STATE_REG : HAL_DFSDM_FILTER_STATE_REG_INJ;
2889 static void DFSDM_RegConvStop(DFSDM_Filter_HandleTypeDef* hdfsdm_filter)
2895 if(hdfsdm_filter->RegularTrigger == DFSDM_FILTER_SYNC_TRIGGER)
2904 if(hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_REG_INJ)
2906 if(hdfsdm_filter->InjectedTrigger == DFSDM_FILTER_SW_TRIGGER)
2911 hdfsdm_filter->InjConvRemaining = (hdfsdm_filter->InjectedScanMode ==
ENABLE) ? \
2912 hdfsdm_filter->InjectedChannelsNbr : 1;
2916 hdfsdm_filter->State = (hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_REG) ? \
2917 HAL_DFSDM_FILTER_STATE_READY : HAL_DFSDM_FILTER_STATE_INJ;
2925 static void DFSDM_InjConvStart(DFSDM_Filter_HandleTypeDef* hdfsdm_filter)
2928 if(hdfsdm_filter->InjectedTrigger == DFSDM_FILTER_SW_TRIGGER)
2938 if(hdfsdm_filter->InjectedTrigger == DFSDM_FILTER_SYNC_TRIGGER)
2946 hdfsdm_filter->Instance->FLTCR1 |= hdfsdm_filter->ExtTriggerEdge;
2953 if((hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_REG) && \
2954 (hdfsdm_filter->RegularTrigger == DFSDM_FILTER_SW_TRIGGER))
2960 hdfsdm_filter->State = (hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_READY) ? \
2961 HAL_DFSDM_FILTER_STATE_INJ : HAL_DFSDM_FILTER_STATE_REG_INJ;
2969 static void DFSDM_InjConvStop(DFSDM_Filter_HandleTypeDef* hdfsdm_filter)
2975 if(hdfsdm_filter->InjectedTrigger == DFSDM_FILTER_SYNC_TRIGGER)
2979 else if(hdfsdm_filter->InjectedTrigger == DFSDM_FILTER_EXT_TRIGGER)
2989 if((hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_REG_INJ) && \
2990 (hdfsdm_filter->RegularTrigger == DFSDM_FILTER_SW_TRIGGER))
2996 hdfsdm_filter->InjConvRemaining = (hdfsdm_filter->InjectedScanMode ==
ENABLE) ? \
2997 hdfsdm_filter->InjectedChannelsNbr : 1;
3000 hdfsdm_filter->State = (hdfsdm_filter->State == HAL_DFSDM_FILTER_STATE_INJ) ? \
3001 HAL_DFSDM_FILTER_STATE_READY : HAL_DFSDM_FILTER_STATE_REG;
#define DFSDM_CHCFGR1_CHINSEL
#define DFSDM_CHCFGR1_DATMPX
#define DFSDM_FLTAWSR_AWLTF
#define DFSDM_FLTISR_AWDF
#define DFSDM_FLTCR2_ROVRIE
#define DFSDM_FLTICR_CLRROVRF
HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma)
#define DFSDM_FLTCR1_RDMAEN
#define assert_param(expr)
Include module's header file.
#define DFSDM_CHAWSCDR_SCDT
#define DFSDM_CHCFGR1_CKOUTSRC
#define DFSDM_CHCFGR1_DATPACK
#define IS_DFSDM_CHANNEL_ALL_INSTANCE(INSTANCE)
#define DFSDM_CHCFGR2_DTRBS
#define DFSDM_FLTISR_JOVRF
#define DFSDM_FLTCR1_RSWSTART
#define DFSDM_FLTCNVTIMR_CNVCNT
#define DFSDM_FLTISR_JEOCF
HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
#define DFSDM_FLTCR2_CKABIE
#define DFSDM_FLTCR1_JSWSTART
#define DFSDM_FLTAWLTR_BKAWL
#define DFSDM_FLTEXMIN_EXMIN
#define DFSDM_FLTFCR_FOSR
#define DFSDM_FLTCR2_AWDIE
#define DFSDM_FLTJDATAR_JDATACH
#define DFSDM_FLTAWCFR_CLRAWHTF
#define DFSDM_CHCFGR2_OFFSET
#define DFSDM_FLTCR1_RCONT
#define DFSDM_FLTCR2_EXCH
#define DFSDM_FLTCR2_REOCIE
#define DFSDM_FLTAWHTR_AWHT
#define DFSDM_FLTEXMAX_EXMAX
#define DFSDM_FLTCR1_FAST
#define DFSDM_CHCFGR1_CKABEN
#define DFSDM_FLTEXMAX_EXMAXCH
#define DFSDM_FLTISR_SCDF
#define DFSDM_FLTJDATAR_JDATA
This file contains all the functions prototypes for the HAL module driver.
#define DFSDM_CHCFGR1_SCDEN
#define DFSDM_FLTICR_CLRJOVRF
#define DFSDM_CHAWSCDR_AWFOSR
#define DFSDM_FLTRDATAR_RDATA
#define DFSDM_CHCFGR1_SPICKSEL
#define DFSDM_CHAWSCDR_AWFORD
DFSDM channel configuration registers.
#define DFSDM_FLTFCR_IOSR
#define DFSDM_CHCFGR1_CKOUTDIV
#define IS_DFSDM_FILTER_ALL_INSTANCE(INSTANCE)
#define DFSDM_CHAWSCDR_BKSCD
#define DFSDM_FLTAWHTR_BKAWH
#define DFSDM_FLTCR1_JSCAN
#define DFSDM_FLTAWCFR_CLRAWLTF
#define DFSDM_FLTFCR_FORD
#define DFSDM_FLTCR1_JSYNC
#define DFSDM_FLTRDATAR_RDATACH
#define DFSDM_FLTISR_CKABF
#define DFSDM_FLTCR1_AWFSEL
#define DFSDM_FLTCR1_RSYNC
DMA handle Structure definition.
#define DFSDM_FLTCR2_JEOCIE
#define IS_FUNCTIONAL_STATE(STATE)
#define DFSDM_FLTCR2_AWDCH
#define DFSDM_CHCFGR1_DFSDMEN
void HAL_DFSDM_FilterRegConvHalfCpltCallback(DFSDM_Filter_HandleTypeDef *hdfsdm_filter)
Half regular conversion complete callback.
#define DFSDM_FLTCR1_JEXTEN
#define DFSDM_CHCFGR1_CHEN
#define DFSDM_FLTISR_ROVRF
#define DFSDM_FLTCR1_DFEN
#define DFSDM_FLTCR1_JEXTSEL
HAL_StatusTypeDef
HAL Status structures definition.
uint32_t HAL_GetTick(void)
Provides a tick value in millisecond.
#define DFSDM_FLTCR2_SCDIE
void HAL_DFSDM_FilterRegConvCpltCallback(DFSDM_Filter_HandleTypeDef *hdfsdm_filter)
Regular conversion complete callback.
#define DFSDM_FLTISR_REOCF
#define DFSDM_FLTCR2_JOVRIE
#define DFSDM_CHCFGR1_SITP
#define DFSDM_FLTEXMIN_EXMINCH
#define DFSDM_FLTAWLTR_AWLT
#define DFSDM_FLTCR1_JDMAEN