File indexing completed on 2025-05-11 08:23:35
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #ifndef STM32H7xx_HAL_DFSDM_H
0021 #define STM32H7xx_HAL_DFSDM_H
0022
0023 #ifdef __cplusplus
0024 extern "C" {
0025 #endif
0026
0027
0028 #include "stm32h7xx_hal_def.h"
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047 typedef enum
0048 {
0049 HAL_DFSDM_CHANNEL_STATE_RESET = 0x00U,
0050 HAL_DFSDM_CHANNEL_STATE_READY = 0x01U,
0051 HAL_DFSDM_CHANNEL_STATE_ERROR = 0xFFU
0052 } HAL_DFSDM_Channel_StateTypeDef;
0053
0054
0055
0056
0057 typedef struct
0058 {
0059 FunctionalState Activation;
0060 uint32_t Selection;
0061
0062 uint32_t Divider;
0063
0064 } DFSDM_Channel_OutputClockTypeDef;
0065
0066
0067
0068
0069 typedef struct
0070 {
0071 uint32_t Multiplexer;
0072
0073 uint32_t DataPacking;
0074
0075 uint32_t Pins;
0076
0077 } DFSDM_Channel_InputTypeDef;
0078
0079
0080
0081
0082 typedef struct
0083 {
0084 uint32_t Type;
0085
0086 uint32_t SpiClock;
0087
0088 } DFSDM_Channel_SerialInterfaceTypeDef;
0089
0090
0091
0092
0093 typedef struct
0094 {
0095 uint32_t FilterOrder;
0096
0097 uint32_t Oversampling;
0098
0099 } DFSDM_Channel_AwdTypeDef;
0100
0101
0102
0103
0104 typedef struct
0105 {
0106 DFSDM_Channel_OutputClockTypeDef OutputClock;
0107 DFSDM_Channel_InputTypeDef Input;
0108 DFSDM_Channel_SerialInterfaceTypeDef SerialInterface;
0109 DFSDM_Channel_AwdTypeDef Awd;
0110 int32_t Offset;
0111
0112 uint32_t RightBitShift;
0113
0114 } DFSDM_Channel_InitTypeDef;
0115
0116
0117
0118
0119 #if (USE_HAL_DFSDM_REGISTER_CALLBACKS == 1)
0120 typedef struct __DFSDM_Channel_HandleTypeDef
0121 #else
0122 typedef struct
0123 #endif
0124 {
0125 DFSDM_Channel_TypeDef *Instance;
0126 DFSDM_Channel_InitTypeDef Init;
0127 HAL_DFSDM_Channel_StateTypeDef State;
0128 #if (USE_HAL_DFSDM_REGISTER_CALLBACKS == 1)
0129 void (*CkabCallback) (struct __DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
0130 void (*ScdCallback) (struct __DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
0131 void (*MspInitCallback) (struct __DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
0132 void (*MspDeInitCallback) (struct __DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
0133 #endif
0134 } DFSDM_Channel_HandleTypeDef;
0135
0136 #if (USE_HAL_DFSDM_REGISTER_CALLBACKS == 1)
0137
0138
0139
0140 typedef enum
0141 {
0142 HAL_DFSDM_CHANNEL_CKAB_CB_ID = 0x00U,
0143 HAL_DFSDM_CHANNEL_SCD_CB_ID = 0x01U,
0144 HAL_DFSDM_CHANNEL_MSPINIT_CB_ID = 0x02U,
0145 HAL_DFSDM_CHANNEL_MSPDEINIT_CB_ID = 0x03U
0146 } HAL_DFSDM_Channel_CallbackIDTypeDef;
0147
0148
0149
0150
0151 typedef void (*pDFSDM_Channel_CallbackTypeDef)(DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
0152 #endif
0153
0154
0155
0156
0157 typedef enum
0158 {
0159 HAL_DFSDM_FILTER_STATE_RESET = 0x00U,
0160 HAL_DFSDM_FILTER_STATE_READY = 0x01U,
0161 HAL_DFSDM_FILTER_STATE_REG = 0x02U,
0162 HAL_DFSDM_FILTER_STATE_INJ = 0x03U,
0163 HAL_DFSDM_FILTER_STATE_REG_INJ = 0x04U,
0164 HAL_DFSDM_FILTER_STATE_ERROR = 0xFFU
0165 } HAL_DFSDM_Filter_StateTypeDef;
0166
0167
0168
0169
0170 typedef struct
0171 {
0172 uint32_t Trigger;
0173
0174 FunctionalState FastMode;
0175 FunctionalState DmaMode;
0176 } DFSDM_Filter_RegularParamTypeDef;
0177
0178
0179
0180
0181 typedef struct
0182 {
0183 uint32_t Trigger;
0184
0185 FunctionalState ScanMode;
0186 FunctionalState DmaMode;
0187 uint32_t ExtTrigger;
0188
0189 uint32_t ExtTriggerEdge;
0190
0191 } DFSDM_Filter_InjectedParamTypeDef;
0192
0193
0194
0195
0196 typedef struct
0197 {
0198 uint32_t SincOrder;
0199
0200 uint32_t Oversampling;
0201
0202 uint32_t IntOversampling;
0203
0204 } DFSDM_Filter_FilterParamTypeDef;
0205
0206
0207
0208
0209 typedef struct
0210 {
0211 DFSDM_Filter_RegularParamTypeDef RegularParam;
0212 DFSDM_Filter_InjectedParamTypeDef InjectedParam;
0213 DFSDM_Filter_FilterParamTypeDef FilterParam;
0214 } DFSDM_Filter_InitTypeDef;
0215
0216
0217
0218
0219 #if (USE_HAL_DFSDM_REGISTER_CALLBACKS == 1)
0220 typedef struct __DFSDM_Filter_HandleTypeDef
0221 #else
0222 typedef struct
0223 #endif
0224 {
0225 DFSDM_Filter_TypeDef *Instance;
0226 DFSDM_Filter_InitTypeDef Init;
0227 DMA_HandleTypeDef *hdmaReg;
0228 DMA_HandleTypeDef *hdmaInj;
0229 uint32_t RegularContMode;
0230 uint32_t RegularTrigger;
0231 uint32_t InjectedTrigger;
0232 uint32_t ExtTriggerEdge;
0233 FunctionalState InjectedScanMode;
0234 uint32_t InjectedChannelsNbr;
0235 uint32_t InjConvRemaining;
0236 HAL_DFSDM_Filter_StateTypeDef State;
0237 uint32_t ErrorCode;
0238 #if (USE_HAL_DFSDM_REGISTER_CALLBACKS == 1)
0239 void (*AwdCallback) (struct __DFSDM_Filter_HandleTypeDef *hdfsdm_filter,
0240 uint32_t Channel, uint32_t Threshold);
0241 void (*RegConvCpltCallback) (struct __DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0242 void (*RegConvHalfCpltCallback) (struct __DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0243 void (*InjConvCpltCallback) (struct __DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0244 void (*InjConvHalfCpltCallback) (struct __DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0245 void (*ErrorCallback) (struct __DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0246 void (*MspInitCallback) (struct __DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0247 void (*MspDeInitCallback) (struct __DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0248 #endif
0249 }DFSDM_Filter_HandleTypeDef;
0250
0251
0252
0253
0254 typedef struct
0255 {
0256 uint32_t DataSource;
0257
0258 uint32_t Channel;
0259
0260 int32_t HighThreshold;
0261
0262 int32_t LowThreshold;
0263
0264 uint32_t HighBreakSignal;
0265
0266 uint32_t LowBreakSignal;
0267
0268 } DFSDM_Filter_AwdParamTypeDef;
0269
0270 #if (USE_HAL_DFSDM_REGISTER_CALLBACKS == 1)
0271
0272
0273
0274 typedef enum
0275 {
0276 HAL_DFSDM_FILTER_REGCONV_COMPLETE_CB_ID = 0x00U,
0277 HAL_DFSDM_FILTER_REGCONV_HALFCOMPLETE_CB_ID = 0x01U,
0278 HAL_DFSDM_FILTER_INJCONV_COMPLETE_CB_ID = 0x02U,
0279 HAL_DFSDM_FILTER_INJCONV_HALFCOMPLETE_CB_ID = 0x03U,
0280 HAL_DFSDM_FILTER_ERROR_CB_ID = 0x04U,
0281 HAL_DFSDM_FILTER_MSPINIT_CB_ID = 0x05U,
0282 HAL_DFSDM_FILTER_MSPDEINIT_CB_ID = 0x06U
0283 } HAL_DFSDM_Filter_CallbackIDTypeDef;
0284
0285
0286
0287
0288 typedef void (*pDFSDM_Filter_CallbackTypeDef)(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0289 typedef void (*pDFSDM_Filter_AwdCallbackTypeDef)(DFSDM_Filter_HandleTypeDef *hdfsdm_filter, uint32_t Channel, uint32_t Threshold);
0290 #endif
0291
0292
0293
0294
0295
0296
0297
0298
0299
0300
0301
0302
0303
0304
0305
0306
0307 #define DFSDM_CHANNEL_OUTPUT_CLOCK_SYSTEM 0x00000000U
0308 #define DFSDM_CHANNEL_OUTPUT_CLOCK_AUDIO DFSDM_CHCFGR1_CKOUTSRC
0309
0310
0311
0312
0313
0314
0315
0316
0317 #define DFSDM_CHANNEL_EXTERNAL_INPUTS 0x00000000U
0318 #define DFSDM_CHANNEL_ADC_OUTPUT DFSDM_CHCFGR1_DATMPX_0
0319 #define DFSDM_CHANNEL_INTERNAL_REGISTER DFSDM_CHCFGR1_DATMPX_1
0320
0321
0322
0323
0324
0325
0326
0327
0328 #define DFSDM_CHANNEL_STANDARD_MODE 0x00000000U
0329 #define DFSDM_CHANNEL_INTERLEAVED_MODE DFSDM_CHCFGR1_DATPACK_0
0330 #define DFSDM_CHANNEL_DUAL_MODE DFSDM_CHCFGR1_DATPACK_1
0331
0332
0333
0334
0335
0336
0337
0338
0339 #define DFSDM_CHANNEL_SAME_CHANNEL_PINS 0x00000000U
0340 #define DFSDM_CHANNEL_FOLLOWING_CHANNEL_PINS DFSDM_CHCFGR1_CHINSEL
0341
0342
0343
0344
0345
0346
0347
0348
0349 #define DFSDM_CHANNEL_SPI_RISING 0x00000000U
0350 #define DFSDM_CHANNEL_SPI_FALLING DFSDM_CHCFGR1_SITP_0
0351 #define DFSDM_CHANNEL_MANCHESTER_RISING DFSDM_CHCFGR1_SITP_1
0352 #define DFSDM_CHANNEL_MANCHESTER_FALLING DFSDM_CHCFGR1_SITP
0353
0354
0355
0356
0357
0358
0359
0360
0361 #define DFSDM_CHANNEL_SPI_CLOCK_EXTERNAL 0x00000000U
0362 #define DFSDM_CHANNEL_SPI_CLOCK_INTERNAL DFSDM_CHCFGR1_SPICKSEL_0
0363 #define DFSDM_CHANNEL_SPI_CLOCK_INTERNAL_DIV2_FALLING DFSDM_CHCFGR1_SPICKSEL_1
0364 #define DFSDM_CHANNEL_SPI_CLOCK_INTERNAL_DIV2_RISING DFSDM_CHCFGR1_SPICKSEL
0365
0366
0367
0368
0369
0370
0371
0372
0373 #define DFSDM_CHANNEL_FASTSINC_ORDER 0x00000000U
0374 #define DFSDM_CHANNEL_SINC1_ORDER DFSDM_CHAWSCDR_AWFORD_0
0375 #define DFSDM_CHANNEL_SINC2_ORDER DFSDM_CHAWSCDR_AWFORD_1
0376 #define DFSDM_CHANNEL_SINC3_ORDER DFSDM_CHAWSCDR_AWFORD
0377
0378
0379
0380
0381
0382
0383
0384
0385 #define DFSDM_FILTER_SW_TRIGGER 0x00000000U
0386 #define DFSDM_FILTER_SYNC_TRIGGER 0x00000001U
0387 #define DFSDM_FILTER_EXT_TRIGGER 0x00000002U
0388
0389
0390
0391
0392
0393
0394
0395
0396 #define DFSDM_FILTER_EXT_TRIG_TIM1_TRGO 0x00000000U
0397 #define DFSDM_FILTER_EXT_TRIG_TIM1_TRGO2 DFSDM_FLTCR1_JEXTSEL_0
0398 #define DFSDM_FILTER_EXT_TRIG_TIM8_TRGO DFSDM_FLTCR1_JEXTSEL_1
0399 #define DFSDM_FILTER_EXT_TRIG_TIM8_TRGO2 (DFSDM_FLTCR1_JEXTSEL_0 | DFSDM_FLTCR1_JEXTSEL_1)
0400 #define DFSDM_FILTER_EXT_TRIG_TIM3_TRGO DFSDM_FLTCR1_JEXTSEL_2
0401 #define DFSDM_FILTER_EXT_TRIG_TIM4_TRGO (DFSDM_FLTCR1_JEXTSEL_0 | DFSDM_FLTCR1_JEXTSEL_2)
0402 #define DFSDM_FILTER_EXT_TRIG_TIM16_OC1 (DFSDM_FLTCR1_JEXTSEL_2 | DFSDM_FLTCR1_JEXTSEL_1)
0403 #define DFSDM_FILTER_EXT_TRIG_TIM6_TRGO (DFSDM_FLTCR1_JEXTSEL_0 | DFSDM_FLTCR1_JEXTSEL_2 | DFSDM_FLTCR1_JEXTSEL_1)
0404 #define DFSDM_FILTER_EXT_TRIG_TIM7_TRGO DFSDM_FLTCR1_JEXTSEL_3
0405 #define DFSDM_FILTER_EXT_TRIG_HRTIM1_ADCTRG1 (DFSDM_FLTCR1_JEXTSEL_3 | DFSDM_FLTCR1_JEXTSEL_0)
0406 #define DFSDM_FILTER_EXT_TRIG_HRTIM1_ADCTRG3 (DFSDM_FLTCR1_JEXTSEL_3 | DFSDM_FLTCR1_JEXTSEL_1)
0407 #define DFSDM_FILTER_EXT_TRIG_EXTI11 (DFSDM_FLTCR1_JEXTSEL_4 | DFSDM_FLTCR1_JEXTSEL_3)
0408 #define DFSDM_FILTER_EXT_TRIG_EXTI15 (DFSDM_FLTCR1_JEXTSEL_4 | DFSDM_FLTCR1_JEXTSEL_3 | DFSDM_FLTCR1_JEXTSEL_0)
0409 #define DFSDM_FILTER_EXT_TRIG_LPTIM1_OUT (DFSDM_FLTCR1_JEXTSEL_4 | DFSDM_FLTCR1_JEXTSEL_3 | DFSDM_FLTCR1_JEXTSEL_1)
0410 #define DFSDM_FILTER_EXT_TRIG_LPTIM2_OUT (DFSDM_FLTCR1_JEXTSEL_4 | DFSDM_FLTCR1_JEXTSEL_3 | DFSDM_FLTCR1_JEXTSEL_1 | DFSDM_FLTCR1_JEXTSEL_0)
0411 #define DFSDM_FILTER_EXT_TRIG_LPTIM3_OUT (DFSDM_FLTCR1_JEXTSEL_4 | DFSDM_FLTCR1_JEXTSEL_3 | DFSDM_FLTCR1_JEXTSEL_2)
0412 #if (STM32H7_DEV_ID == 0x480UL)
0413 #define DFSDM_FILTER_EXT_TRIG_COMP1_OUT (DFSDM_FLTCR1_JEXTSEL_4 | DFSDM_FLTCR1_JEXTSEL_3 | \
0414 DFSDM_FLTCR1_JEXTSEL_2 | DFSDM_FLTCR1_JEXTSEL_0)
0415 #define DFSDM_FILTER_EXT_TRIG_COMP2_OUT (DFSDM_FLTCR1_JEXTSEL_4 | DFSDM_FLTCR1_JEXTSEL_3 | \
0416 DFSDM_FLTCR1_JEXTSEL_2 | DFSDM_FLTCR1_JEXTSEL_1)
0417 #elif (STM32H7_DEV_ID == 0x483UL)
0418 #define DFSDM_FILTER_EXT_TRIG_TIM23_TRGO (DFSDM_FLTCR1_JEXTSEL_3 | DFSDM_FLTCR1_JEXTSEL_1 | \
0419 DFSDM_FLTCR1_JEXTSEL_0)
0420 #define DFSDM_FILTER_EXT_TRIG_TIM24_TRGO (DFSDM_FLTCR1_JEXTSEL_3 | DFSDM_FLTCR1_JEXTSEL_2 )
0421 #endif
0422
0423
0424
0425
0426
0427
0428
0429
0430 #define DFSDM_FILTER_EXT_TRIG_RISING_EDGE DFSDM_FLTCR1_JEXTEN_0
0431 #define DFSDM_FILTER_EXT_TRIG_FALLING_EDGE DFSDM_FLTCR1_JEXTEN_1
0432 #define DFSDM_FILTER_EXT_TRIG_BOTH_EDGES DFSDM_FLTCR1_JEXTEN
0433
0434
0435
0436
0437
0438
0439
0440
0441 #define DFSDM_FILTER_FASTSINC_ORDER 0x00000000U
0442 #define DFSDM_FILTER_SINC1_ORDER DFSDM_FLTFCR_FORD_0
0443 #define DFSDM_FILTER_SINC2_ORDER DFSDM_FLTFCR_FORD_1
0444 #define DFSDM_FILTER_SINC3_ORDER (DFSDM_FLTFCR_FORD_0 | DFSDM_FLTFCR_FORD_1)
0445 #define DFSDM_FILTER_SINC4_ORDER DFSDM_FLTFCR_FORD_2
0446 #define DFSDM_FILTER_SINC5_ORDER (DFSDM_FLTFCR_FORD_0 | DFSDM_FLTFCR_FORD_2)
0447
0448
0449
0450
0451
0452
0453
0454
0455 #define DFSDM_FILTER_AWD_FILTER_DATA 0x00000000U
0456 #define DFSDM_FILTER_AWD_CHANNEL_DATA DFSDM_FLTCR1_AWFSEL
0457
0458
0459
0460
0461
0462
0463
0464
0465 #define DFSDM_FILTER_ERROR_NONE 0x00000000U
0466 #define DFSDM_FILTER_ERROR_REGULAR_OVERRUN 0x00000001U
0467 #define DFSDM_FILTER_ERROR_INJECTED_OVERRUN 0x00000002U
0468 #define DFSDM_FILTER_ERROR_DMA 0x00000003U
0469 #if (USE_HAL_DFSDM_REGISTER_CALLBACKS == 1)
0470 #define DFSDM_FILTER_ERROR_INVALID_CALLBACK 0x00000004U
0471 #endif
0472
0473
0474
0475
0476
0477
0478
0479
0480 #define DFSDM_NO_BREAK_SIGNAL 0x00000000U
0481 #define DFSDM_BREAK_SIGNAL_0 0x00000001U
0482 #define DFSDM_BREAK_SIGNAL_1 0x00000002U
0483 #define DFSDM_BREAK_SIGNAL_2 0x00000004U
0484 #define DFSDM_BREAK_SIGNAL_3 0x00000008U
0485
0486
0487
0488
0489
0490
0491
0492
0493
0494
0495
0496
0497
0498
0499
0500
0501 #define DFSDM_CHANNEL_0 0x00000001U
0502 #define DFSDM_CHANNEL_1 0x00010002U
0503 #define DFSDM_CHANNEL_2 0x00020004U
0504 #define DFSDM_CHANNEL_3 0x00030008U
0505 #define DFSDM_CHANNEL_4 0x00040010U
0506 #define DFSDM_CHANNEL_5 0x00050020U
0507 #define DFSDM_CHANNEL_6 0x00060040U
0508 #define DFSDM_CHANNEL_7 0x00070080U
0509
0510
0511
0512
0513
0514
0515
0516
0517 #define DFSDM_CONTINUOUS_CONV_OFF 0x00000000U
0518 #define DFSDM_CONTINUOUS_CONV_ON 0x00000001U
0519
0520
0521
0522
0523
0524
0525
0526
0527 #define DFSDM_AWD_HIGH_THRESHOLD 0x00000000U
0528 #define DFSDM_AWD_LOW_THRESHOLD 0x00000001U
0529
0530
0531
0532
0533
0534
0535
0536
0537
0538
0539
0540
0541
0542
0543
0544
0545
0546
0547
0548 #if (USE_HAL_DFSDM_REGISTER_CALLBACKS == 1)
0549 #define __HAL_DFSDM_CHANNEL_RESET_HANDLE_STATE(__HANDLE__) do{ \
0550 (__HANDLE__)->State = HAL_DFSDM_CHANNEL_STATE_RESET; \
0551 (__HANDLE__)->MspInitCallback = NULL; \
0552 (__HANDLE__)->MspDeInitCallback = NULL; \
0553 } while(0)
0554 #else
0555 #define __HAL_DFSDM_CHANNEL_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_DFSDM_CHANNEL_STATE_RESET)
0556 #endif
0557
0558
0559
0560
0561
0562 #if (USE_HAL_DFSDM_REGISTER_CALLBACKS == 1)
0563 #define __HAL_DFSDM_FILTER_RESET_HANDLE_STATE(__HANDLE__) do{ \
0564 (__HANDLE__)->State = HAL_DFSDM_FILTER_STATE_RESET; \
0565 (__HANDLE__)->MspInitCallback = NULL; \
0566 (__HANDLE__)->MspDeInitCallback = NULL; \
0567 } while(0)
0568 #else
0569 #define __HAL_DFSDM_FILTER_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_DFSDM_FILTER_STATE_RESET)
0570 #endif
0571
0572
0573
0574
0575
0576
0577 #if defined(DFSDM_CHDLYR_PLSSKP)
0578
0579 #include "stm32h7xx_hal_dfsdm_ex.h"
0580 #endif
0581
0582
0583
0584
0585
0586
0587
0588
0589
0590
0591 HAL_StatusTypeDef HAL_DFSDM_ChannelInit(DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
0592 HAL_StatusTypeDef HAL_DFSDM_ChannelDeInit(DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
0593 void HAL_DFSDM_ChannelMspInit(DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
0594 void HAL_DFSDM_ChannelMspDeInit(DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
0595
0596 #if (USE_HAL_DFSDM_REGISTER_CALLBACKS == 1)
0597
0598 HAL_StatusTypeDef HAL_DFSDM_Channel_RegisterCallback(DFSDM_Channel_HandleTypeDef *hdfsdm_channel,
0599 HAL_DFSDM_Channel_CallbackIDTypeDef CallbackID,
0600 pDFSDM_Channel_CallbackTypeDef pCallback);
0601 HAL_StatusTypeDef HAL_DFSDM_Channel_UnRegisterCallback(DFSDM_Channel_HandleTypeDef *hdfsdm_channel,
0602 HAL_DFSDM_Channel_CallbackIDTypeDef CallbackID);
0603 #endif
0604
0605
0606
0607
0608
0609
0610
0611
0612 HAL_StatusTypeDef HAL_DFSDM_ChannelCkabStart(DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
0613 HAL_StatusTypeDef HAL_DFSDM_ChannelCkabStart_IT(DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
0614 HAL_StatusTypeDef HAL_DFSDM_ChannelCkabStop(DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
0615 HAL_StatusTypeDef HAL_DFSDM_ChannelCkabStop_IT(DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
0616
0617 HAL_StatusTypeDef HAL_DFSDM_ChannelScdStart(DFSDM_Channel_HandleTypeDef *hdfsdm_channel, uint32_t Threshold, uint32_t BreakSignal);
0618 HAL_StatusTypeDef HAL_DFSDM_ChannelScdStart_IT(DFSDM_Channel_HandleTypeDef *hdfsdm_channel, uint32_t Threshold, uint32_t BreakSignal);
0619 HAL_StatusTypeDef HAL_DFSDM_ChannelScdStop(DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
0620 HAL_StatusTypeDef HAL_DFSDM_ChannelScdStop_IT(DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
0621
0622 int16_t HAL_DFSDM_ChannelGetAwdValue(const DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
0623 HAL_StatusTypeDef HAL_DFSDM_ChannelModifyOffset(DFSDM_Channel_HandleTypeDef *hdfsdm_channel, int32_t Offset);
0624
0625 HAL_StatusTypeDef HAL_DFSDM_ChannelPollForCkab(const DFSDM_Channel_HandleTypeDef *hdfsdm_channel, uint32_t Timeout);
0626 HAL_StatusTypeDef HAL_DFSDM_ChannelPollForScd(const DFSDM_Channel_HandleTypeDef *hdfsdm_channel, uint32_t Timeout);
0627
0628 void HAL_DFSDM_ChannelCkabCallback(DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
0629 void HAL_DFSDM_ChannelScdCallback(DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
0630
0631
0632
0633
0634
0635
0636
0637
0638
0639 HAL_DFSDM_Channel_StateTypeDef HAL_DFSDM_ChannelGetState(const DFSDM_Channel_HandleTypeDef *hdfsdm_channel);
0640
0641
0642
0643
0644
0645
0646
0647
0648 HAL_StatusTypeDef HAL_DFSDM_FilterInit(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0649 HAL_StatusTypeDef HAL_DFSDM_FilterDeInit(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0650 void HAL_DFSDM_FilterMspInit(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0651 void HAL_DFSDM_FilterMspDeInit(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0652
0653 #if (USE_HAL_DFSDM_REGISTER_CALLBACKS == 1)
0654
0655 HAL_StatusTypeDef HAL_DFSDM_Filter_RegisterCallback(DFSDM_Filter_HandleTypeDef *hdfsdm_filter,
0656 HAL_DFSDM_Filter_CallbackIDTypeDef CallbackID,
0657 pDFSDM_Filter_CallbackTypeDef pCallback);
0658 HAL_StatusTypeDef HAL_DFSDM_Filter_UnRegisterCallback(DFSDM_Filter_HandleTypeDef *hdfsdm_filter,
0659 HAL_DFSDM_Filter_CallbackIDTypeDef CallbackID);
0660 HAL_StatusTypeDef HAL_DFSDM_Filter_RegisterAwdCallback(DFSDM_Filter_HandleTypeDef *hdfsdm_filter,
0661 pDFSDM_Filter_AwdCallbackTypeDef pCallback);
0662 HAL_StatusTypeDef HAL_DFSDM_Filter_UnRegisterAwdCallback(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0663 #endif
0664
0665
0666
0667
0668
0669
0670
0671
0672 HAL_StatusTypeDef HAL_DFSDM_FilterConfigRegChannel(DFSDM_Filter_HandleTypeDef *hdfsdm_filter,
0673 uint32_t Channel,
0674 uint32_t ContinuousMode);
0675 HAL_StatusTypeDef HAL_DFSDM_FilterConfigInjChannel(DFSDM_Filter_HandleTypeDef *hdfsdm_filter,
0676 uint32_t Channel);
0677
0678
0679
0680
0681
0682
0683
0684
0685 HAL_StatusTypeDef HAL_DFSDM_FilterRegularStart(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0686 HAL_StatusTypeDef HAL_DFSDM_FilterRegularStart_IT(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0687 HAL_StatusTypeDef HAL_DFSDM_FilterRegularStart_DMA(DFSDM_Filter_HandleTypeDef *hdfsdm_filter, int32_t *pData, uint32_t Length);
0688 HAL_StatusTypeDef HAL_DFSDM_FilterRegularMsbStart_DMA(DFSDM_Filter_HandleTypeDef *hdfsdm_filter, int16_t *pData, uint32_t Length);
0689 HAL_StatusTypeDef HAL_DFSDM_FilterRegularStop(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0690 HAL_StatusTypeDef HAL_DFSDM_FilterRegularStop_IT(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0691 HAL_StatusTypeDef HAL_DFSDM_FilterRegularStop_DMA(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0692 HAL_StatusTypeDef HAL_DFSDM_FilterInjectedStart(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0693 HAL_StatusTypeDef HAL_DFSDM_FilterInjectedStart_IT(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0694 HAL_StatusTypeDef HAL_DFSDM_FilterInjectedStart_DMA(DFSDM_Filter_HandleTypeDef *hdfsdm_filter, int32_t *pData, uint32_t Length);
0695 HAL_StatusTypeDef HAL_DFSDM_FilterInjectedMsbStart_DMA(DFSDM_Filter_HandleTypeDef *hdfsdm_filter, int16_t *pData, uint32_t Length);
0696 HAL_StatusTypeDef HAL_DFSDM_FilterInjectedStop(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0697 HAL_StatusTypeDef HAL_DFSDM_FilterInjectedStop_IT(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0698 HAL_StatusTypeDef HAL_DFSDM_FilterInjectedStop_DMA(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0699 HAL_StatusTypeDef HAL_DFSDM_FilterAwdStart_IT(DFSDM_Filter_HandleTypeDef *hdfsdm_filter,
0700 const DFSDM_Filter_AwdParamTypeDef *awdParam);
0701 HAL_StatusTypeDef HAL_DFSDM_FilterAwdStop_IT(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0702 HAL_StatusTypeDef HAL_DFSDM_FilterExdStart(DFSDM_Filter_HandleTypeDef *hdfsdm_filter, uint32_t Channel);
0703 HAL_StatusTypeDef HAL_DFSDM_FilterExdStop(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0704
0705 int32_t HAL_DFSDM_FilterGetRegularValue(const DFSDM_Filter_HandleTypeDef *hdfsdm_filter, uint32_t *Channel);
0706 int32_t HAL_DFSDM_FilterGetInjectedValue(const DFSDM_Filter_HandleTypeDef *hdfsdm_filter, uint32_t *Channel);
0707 int32_t HAL_DFSDM_FilterGetExdMaxValue(const DFSDM_Filter_HandleTypeDef *hdfsdm_filter, uint32_t *Channel);
0708 int32_t HAL_DFSDM_FilterGetExdMinValue(const DFSDM_Filter_HandleTypeDef *hdfsdm_filter, uint32_t *Channel);
0709 uint32_t HAL_DFSDM_FilterGetConvTimeValue(const DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0710
0711 void HAL_DFSDM_IRQHandler(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0712
0713 HAL_StatusTypeDef HAL_DFSDM_FilterPollForRegConversion(DFSDM_Filter_HandleTypeDef *hdfsdm_filter, uint32_t Timeout);
0714 HAL_StatusTypeDef HAL_DFSDM_FilterPollForInjConversion(DFSDM_Filter_HandleTypeDef *hdfsdm_filter, uint32_t Timeout);
0715
0716 void HAL_DFSDM_FilterRegConvCpltCallback(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0717 void HAL_DFSDM_FilterRegConvHalfCpltCallback(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0718 void HAL_DFSDM_FilterInjConvCpltCallback(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0719 void HAL_DFSDM_FilterInjConvHalfCpltCallback(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0720 void HAL_DFSDM_FilterAwdCallback(DFSDM_Filter_HandleTypeDef *hdfsdm_filter, uint32_t Channel, uint32_t Threshold);
0721 void HAL_DFSDM_FilterErrorCallback(DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0722
0723
0724
0725
0726
0727
0728
0729
0730
0731 HAL_DFSDM_Filter_StateTypeDef HAL_DFSDM_FilterGetState(const DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0732 uint32_t HAL_DFSDM_FilterGetError(const DFSDM_Filter_HandleTypeDef *hdfsdm_filter);
0733
0734
0735
0736
0737
0738
0739
0740
0741
0742
0743
0744
0745
0746
0747 #define IS_DFSDM_CHANNEL_OUTPUT_CLOCK(CLOCK) (((CLOCK) == DFSDM_CHANNEL_OUTPUT_CLOCK_SYSTEM) || \
0748 ((CLOCK) == DFSDM_CHANNEL_OUTPUT_CLOCK_AUDIO))
0749 #define IS_DFSDM_CHANNEL_OUTPUT_CLOCK_DIVIDER(DIVIDER) ((2U <= (DIVIDER)) && ((DIVIDER) <= 256U))
0750 #define IS_DFSDM_CHANNEL_INPUT(INPUT) (((INPUT) == DFSDM_CHANNEL_EXTERNAL_INPUTS) || \
0751 ((INPUT) == DFSDM_CHANNEL_ADC_OUTPUT) || \
0752 ((INPUT) == DFSDM_CHANNEL_INTERNAL_REGISTER))
0753 #define IS_DFSDM_CHANNEL_DATA_PACKING(MODE) (((MODE) == DFSDM_CHANNEL_STANDARD_MODE) || \
0754 ((MODE) == DFSDM_CHANNEL_INTERLEAVED_MODE) || \
0755 ((MODE) == DFSDM_CHANNEL_DUAL_MODE))
0756 #define IS_DFSDM_CHANNEL_INPUT_PINS(PINS) (((PINS) == DFSDM_CHANNEL_SAME_CHANNEL_PINS) || \
0757 ((PINS) == DFSDM_CHANNEL_FOLLOWING_CHANNEL_PINS))
0758 #define IS_DFSDM_CHANNEL_SERIAL_INTERFACE_TYPE(MODE) (((MODE) == DFSDM_CHANNEL_SPI_RISING) || \
0759 ((MODE) == DFSDM_CHANNEL_SPI_FALLING) || \
0760 ((MODE) == DFSDM_CHANNEL_MANCHESTER_RISING) || \
0761 ((MODE) == DFSDM_CHANNEL_MANCHESTER_FALLING))
0762 #define IS_DFSDM_CHANNEL_SPI_CLOCK(TYPE) (((TYPE) == DFSDM_CHANNEL_SPI_CLOCK_EXTERNAL) || \
0763 ((TYPE) == DFSDM_CHANNEL_SPI_CLOCK_INTERNAL) || \
0764 ((TYPE) == DFSDM_CHANNEL_SPI_CLOCK_INTERNAL_DIV2_FALLING) || \
0765 ((TYPE) == DFSDM_CHANNEL_SPI_CLOCK_INTERNAL_DIV2_RISING))
0766 #define IS_DFSDM_CHANNEL_FILTER_ORDER(ORDER) (((ORDER) == DFSDM_CHANNEL_FASTSINC_ORDER) || \
0767 ((ORDER) == DFSDM_CHANNEL_SINC1_ORDER) || \
0768 ((ORDER) == DFSDM_CHANNEL_SINC2_ORDER) || \
0769 ((ORDER) == DFSDM_CHANNEL_SINC3_ORDER))
0770 #define IS_DFSDM_CHANNEL_FILTER_OVS_RATIO(RATIO) ((1U <= (RATIO)) && ((RATIO) <= 32U))
0771 #define IS_DFSDM_CHANNEL_OFFSET(VALUE) ((-8388608 <= (VALUE)) && ((VALUE) <= 8388607))
0772 #define IS_DFSDM_CHANNEL_RIGHT_BIT_SHIFT(VALUE) ((VALUE) <= 0x1FU)
0773 #define IS_DFSDM_CHANNEL_SCD_THRESHOLD(VALUE) ((VALUE) <= 0xFFU)
0774 #define IS_DFSDM_FILTER_REG_TRIGGER(TRIG) (((TRIG) == DFSDM_FILTER_SW_TRIGGER) || \
0775 ((TRIG) == DFSDM_FILTER_SYNC_TRIGGER))
0776 #define IS_DFSDM_FILTER_INJ_TRIGGER(TRIG) (((TRIG) == DFSDM_FILTER_SW_TRIGGER) || \
0777 ((TRIG) == DFSDM_FILTER_SYNC_TRIGGER) || \
0778 ((TRIG) == DFSDM_FILTER_EXT_TRIGGER))
0779 #if (STM32H7_DEV_ID == 0x480UL)
0780 #define IS_DFSDM_FILTER_EXT_TRIG(TRIG) (((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM1_TRGO) || \
0781 ((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM1_TRGO2) || \
0782 ((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM8_TRGO) || \
0783 ((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM8_TRGO2) || \
0784 ((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM3_TRGO) || \
0785 ((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM4_TRGO) || \
0786 ((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM16_OC1) || \
0787 ((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM6_TRGO) || \
0788 ((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM7_TRGO) || \
0789 ((TRIG) == DFSDM_FILTER_EXT_TRIG_EXTI11) || \
0790 ((TRIG) == DFSDM_FILTER_EXT_TRIG_EXTI15) || \
0791 ((TRIG) == DFSDM_FILTER_EXT_TRIG_LPTIM1_OUT) || \
0792 ((TRIG) == DFSDM_FILTER_EXT_TRIG_LPTIM2_OUT) || \
0793 ((TRIG) == DFSDM_FILTER_EXT_TRIG_LPTIM3_OUT) || \
0794 ((TRIG) == DFSDM_FILTER_EXT_TRIG_COMP1_OUT) || \
0795 ((TRIG) == DFSDM_FILTER_EXT_TRIG_COMP2_OUT))
0796 #elif (STM32H7_DEV_ID == 0x483UL)
0797 #define IS_DFSDM_FILTER_EXT_TRIG(TRIG) (((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM1_TRGO) || \
0798 ((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM1_TRGO2) || \
0799 ((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM8_TRGO) || \
0800 ((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM8_TRGO2) || \
0801 ((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM3_TRGO) || \
0802 ((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM4_TRGO) || \
0803 ((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM16_OC1) || \
0804 ((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM6_TRGO) || \
0805 ((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM7_TRGO) || \
0806 ((TRIG) == DFSDM_FILTER_EXT_TRIG_EXTI11) || \
0807 ((TRIG) == DFSDM_FILTER_EXT_TRIG_EXTI15) || \
0808 ((TRIG) == DFSDM_FILTER_EXT_TRIG_LPTIM1_OUT) || \
0809 ((TRIG) == DFSDM_FILTER_EXT_TRIG_LPTIM2_OUT) || \
0810 ((TRIG) == DFSDM_FILTER_EXT_TRIG_LPTIM3_OUT) || \
0811 ((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM23_TRGO) || \
0812 ((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM24_TRGO))
0813
0814 #else
0815 #define IS_DFSDM_FILTER_EXT_TRIG(TRIG) (((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM1_TRGO) || \
0816 ((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM1_TRGO2) || \
0817 ((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM8_TRGO) || \
0818 ((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM8_TRGO2) || \
0819 ((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM3_TRGO) || \
0820 ((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM4_TRGO) || \
0821 ((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM16_OC1) || \
0822 ((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM6_TRGO) || \
0823 ((TRIG) == DFSDM_FILTER_EXT_TRIG_TIM7_TRGO) || \
0824 ((TRIG) == DFSDM_FILTER_EXT_TRIG_HRTIM1_ADCTRG1) || \
0825 ((TRIG) == DFSDM_FILTER_EXT_TRIG_HRTIM1_ADCTRG3) || \
0826 ((TRIG) == DFSDM_FILTER_EXT_TRIG_EXTI11) || \
0827 ((TRIG) == DFSDM_FILTER_EXT_TRIG_EXTI15) || \
0828 ((TRIG) == DFSDM_FILTER_EXT_TRIG_LPTIM1_OUT) || \
0829 ((TRIG) == DFSDM_FILTER_EXT_TRIG_LPTIM2_OUT) || \
0830 ((TRIG) == DFSDM_FILTER_EXT_TRIG_LPTIM3_OUT))
0831 #endif
0832 #define IS_DFSDM_FILTER_EXT_TRIG_EDGE(EDGE) (((EDGE) == DFSDM_FILTER_EXT_TRIG_RISING_EDGE) || \
0833 ((EDGE) == DFSDM_FILTER_EXT_TRIG_FALLING_EDGE) || \
0834 ((EDGE) == DFSDM_FILTER_EXT_TRIG_BOTH_EDGES))
0835 #define IS_DFSDM_FILTER_SINC_ORDER(ORDER) (((ORDER) == DFSDM_FILTER_FASTSINC_ORDER) || \
0836 ((ORDER) == DFSDM_FILTER_SINC1_ORDER) || \
0837 ((ORDER) == DFSDM_FILTER_SINC2_ORDER) || \
0838 ((ORDER) == DFSDM_FILTER_SINC3_ORDER) || \
0839 ((ORDER) == DFSDM_FILTER_SINC4_ORDER) || \
0840 ((ORDER) == DFSDM_FILTER_SINC5_ORDER))
0841 #define IS_DFSDM_FILTER_OVS_RATIO(RATIO) ((1U <= (RATIO)) && ((RATIO) <= 1024U))
0842 #define IS_DFSDM_FILTER_INTEGRATOR_OVS_RATIO(RATIO) ((1U <= (RATIO)) && ((RATIO) <= 256U))
0843 #define IS_DFSDM_FILTER_AWD_DATA_SOURCE(DATA) (((DATA) == DFSDM_FILTER_AWD_FILTER_DATA) || \
0844 ((DATA) == DFSDM_FILTER_AWD_CHANNEL_DATA))
0845 #define IS_DFSDM_FILTER_AWD_THRESHOLD(VALUE) ((-8388608 <= (VALUE)) && ((VALUE) <= 8388607))
0846 #define IS_DFSDM_BREAK_SIGNALS(VALUE) ((VALUE) <= 0xFU)
0847 #define IS_DFSDM_REGULAR_CHANNEL(CHANNEL) (((CHANNEL) == DFSDM_CHANNEL_0) || \
0848 ((CHANNEL) == DFSDM_CHANNEL_1) || \
0849 ((CHANNEL) == DFSDM_CHANNEL_2) || \
0850 ((CHANNEL) == DFSDM_CHANNEL_3) || \
0851 ((CHANNEL) == DFSDM_CHANNEL_4) || \
0852 ((CHANNEL) == DFSDM_CHANNEL_5) || \
0853 ((CHANNEL) == DFSDM_CHANNEL_6) || \
0854 ((CHANNEL) == DFSDM_CHANNEL_7))
0855 #define IS_DFSDM_INJECTED_CHANNEL(CHANNEL) (((CHANNEL) != 0U) && ((CHANNEL) <= 0x000F00FFU))
0856 #define IS_DFSDM_CONTINUOUS_MODE(MODE) (((MODE) == DFSDM_CONTINUOUS_CONV_OFF) || \
0857 ((MODE) == DFSDM_CONTINUOUS_CONV_ON))
0858 #if defined(DFSDM2_Channel0)
0859 #define IS_DFSDM1_CHANNEL_INSTANCE(INSTANCE) (((INSTANCE) == DFSDM1_Channel0) || \
0860 ((INSTANCE) == DFSDM1_Channel1) || \
0861 ((INSTANCE) == DFSDM1_Channel2) || \
0862 ((INSTANCE) == DFSDM1_Channel3) || \
0863 ((INSTANCE) == DFSDM1_Channel4) || \
0864 ((INSTANCE) == DFSDM1_Channel5) || \
0865 ((INSTANCE) == DFSDM1_Channel6) || \
0866 ((INSTANCE) == DFSDM1_Channel7))
0867 #define IS_DFSDM1_FILTER_INSTANCE(INSTANCE) (((INSTANCE) == DFSDM1_Filter0) || \
0868 ((INSTANCE) == DFSDM1_Filter1) || \
0869 ((INSTANCE) == DFSDM1_Filter2) || \
0870 ((INSTANCE) == DFSDM1_Filter3) || \
0871 ((INSTANCE) == DFSDM1_Filter4) || \
0872 ((INSTANCE) == DFSDM1_Filter5) || \
0873 ((INSTANCE) == DFSDM1_Filter6) || \
0874 ((INSTANCE) == DFSDM1_Filter7))
0875 #endif
0876
0877
0878
0879
0880
0881
0882
0883
0884
0885
0886
0887
0888
0889 #ifdef __cplusplus
0890 }
0891 #endif
0892
0893 #endif
0894