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_DAC_EX_H
0021 #define STM32H7xx_HAL_DAC_EX_H
0022
0023 #ifdef __cplusplus
0024 extern "C" {
0025 #endif
0026
0027
0028
0029
0030
0031
0032 #include "stm32h7xx_hal_def.h"
0033
0034 #if defined(DAC1) || defined(DAC2)
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057 #define DAC_LFSRUNMASK_BIT0 0x00000000UL
0058 #define DAC_LFSRUNMASK_BITS1_0 ( DAC_CR_MAMP1_0)
0059 #define DAC_LFSRUNMASK_BITS2_0 ( DAC_CR_MAMP1_1 )
0060 #define DAC_LFSRUNMASK_BITS3_0 ( DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0)
0061 #define DAC_LFSRUNMASK_BITS4_0 ( DAC_CR_MAMP1_2 )
0062 #define DAC_LFSRUNMASK_BITS5_0 ( DAC_CR_MAMP1_2 | DAC_CR_MAMP1_0)
0063 #define DAC_LFSRUNMASK_BITS6_0 ( DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1 )
0064 #define DAC_LFSRUNMASK_BITS7_0 ( DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0)
0065 #define DAC_LFSRUNMASK_BITS8_0 (DAC_CR_MAMP1_3 )
0066 #define DAC_LFSRUNMASK_BITS9_0 (DAC_CR_MAMP1_3 | DAC_CR_MAMP1_0)
0067 #define DAC_LFSRUNMASK_BITS10_0 (DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1 )
0068 #define DAC_LFSRUNMASK_BITS11_0 (DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0)
0069 #define DAC_TRIANGLEAMPLITUDE_1 0x00000000UL
0070 #define DAC_TRIANGLEAMPLITUDE_3 ( DAC_CR_MAMP1_0)
0071 #define DAC_TRIANGLEAMPLITUDE_7 ( DAC_CR_MAMP1_1 )
0072 #define DAC_TRIANGLEAMPLITUDE_15 ( DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0)
0073 #define DAC_TRIANGLEAMPLITUDE_31 ( DAC_CR_MAMP1_2 )
0074 #define DAC_TRIANGLEAMPLITUDE_63 ( DAC_CR_MAMP1_2 | DAC_CR_MAMP1_0)
0075 #define DAC_TRIANGLEAMPLITUDE_127 ( DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1 )
0076 #define DAC_TRIANGLEAMPLITUDE_255 ( DAC_CR_MAMP1_2 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0)
0077 #define DAC_TRIANGLEAMPLITUDE_511 (DAC_CR_MAMP1_3 )
0078 #define DAC_TRIANGLEAMPLITUDE_1023 (DAC_CR_MAMP1_3 | DAC_CR_MAMP1_0)
0079 #define DAC_TRIANGLEAMPLITUDE_2047 (DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1 )
0080 #define DAC_TRIANGLEAMPLITUDE_4095 (DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0)
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100 #if defined(HRTIM1)
0101 #define IS_DAC_TRIGGER(TRIGGER) (((TRIGGER) == DAC_TRIGGER_NONE) || \
0102 ((TRIGGER) == DAC_TRIGGER_T1_TRGO) || \
0103 ((TRIGGER) == DAC_TRIGGER_T2_TRGO) || \
0104 ((TRIGGER) == DAC_TRIGGER_T4_TRGO) || \
0105 ((TRIGGER) == DAC_TRIGGER_T5_TRGO) || \
0106 ((TRIGGER) == DAC_TRIGGER_T6_TRGO) || \
0107 ((TRIGGER) == DAC_TRIGGER_T7_TRGO) || \
0108 ((TRIGGER) == DAC_TRIGGER_T8_TRGO) || \
0109 ((TRIGGER) == DAC_TRIGGER_T15_TRGO) || \
0110 ((TRIGGER) == DAC_TRIGGER_HR1_TRGO1) || \
0111 ((TRIGGER) == DAC_TRIGGER_HR1_TRGO2) || \
0112 ((TRIGGER) == DAC_TRIGGER_LPTIM1_OUT) || \
0113 ((TRIGGER) == DAC_TRIGGER_LPTIM2_OUT) || \
0114 ((TRIGGER) == DAC_TRIGGER_EXT_IT9) || \
0115 ((TRIGGER) == DAC_TRIGGER_SOFTWARE))
0116 #elif defined(DAC2)
0117 #define IS_DAC_TRIGGER(TRIGGER) (((TRIGGER) == DAC_TRIGGER_NONE) || \
0118 ((TRIGGER) == DAC_TRIGGER_T1_TRGO) || \
0119 ((TRIGGER) == DAC_TRIGGER_T2_TRGO) || \
0120 ((TRIGGER) == DAC_TRIGGER_T4_TRGO) || \
0121 ((TRIGGER) == DAC_TRIGGER_T5_TRGO) || \
0122 ((TRIGGER) == DAC_TRIGGER_T6_TRGO) || \
0123 ((TRIGGER) == DAC_TRIGGER_T7_TRGO) || \
0124 ((TRIGGER) == DAC_TRIGGER_T8_TRGO) || \
0125 ((TRIGGER) == DAC_TRIGGER_T15_TRGO) || \
0126 ((TRIGGER) == DAC_TRIGGER_LPTIM1_OUT) || \
0127 ((TRIGGER) == DAC_TRIGGER_LPTIM2_OUT) || \
0128 ((TRIGGER) == DAC_TRIGGER_EXT_IT9) || \
0129 ((TRIGGER) == DAC_TRIGGER_LPTIM3_OUT) || \
0130 ((TRIGGER) == DAC_TRIGGER_SOFTWARE))
0131 #else
0132 #define IS_DAC_TRIGGER(TRIGGER) (((TRIGGER) == DAC_TRIGGER_NONE) || \
0133 ((TRIGGER) == DAC_TRIGGER_T1_TRGO) || \
0134 ((TRIGGER) == DAC_TRIGGER_T2_TRGO) || \
0135 ((TRIGGER) == DAC_TRIGGER_T4_TRGO) || \
0136 ((TRIGGER) == DAC_TRIGGER_T5_TRGO) || \
0137 ((TRIGGER) == DAC_TRIGGER_T6_TRGO) || \
0138 ((TRIGGER) == DAC_TRIGGER_T7_TRGO) || \
0139 ((TRIGGER) == DAC_TRIGGER_T8_TRGO) || \
0140 ((TRIGGER) == DAC_TRIGGER_T15_TRGO) || \
0141 ((TRIGGER) == DAC_TRIGGER_LPTIM1_OUT) || \
0142 ((TRIGGER) == DAC_TRIGGER_LPTIM2_OUT) || \
0143 ((TRIGGER) == DAC_TRIGGER_EXT_IT9) || \
0144 ((TRIGGER) == DAC_TRIGGER_T23_TRGO) || \
0145 ((TRIGGER) == DAC_TRIGGER_T24_TRGO) || \
0146 ((TRIGGER) == DAC_TRIGGER_SOFTWARE))
0147 #endif
0148
0149 #define IS_DAC_SAMPLETIME(TIME) ((TIME) <= 0x000003FFU)
0150
0151 #define IS_DAC_HOLDTIME(TIME) ((TIME) <= 0x000003FFU)
0152
0153 #define IS_DAC_SAMPLEANDHOLD(MODE) (((MODE) == DAC_SAMPLEANDHOLD_DISABLE) || \
0154 ((MODE) == DAC_SAMPLEANDHOLD_ENABLE))
0155
0156 #define IS_DAC_TRIMMINGVALUE(TRIMMINGVALUE) ((TRIMMINGVALUE) <= 0x1FU)
0157
0158 #define IS_DAC_NEWTRIMMINGVALUE(TRIMMINGVALUE) ((TRIMMINGVALUE) <= 0x1FU)
0159
0160 #define IS_DAC_CHIP_CONNECTION(CONNECT) (((CONNECT) == DAC_CHIPCONNECT_EXTERNAL) || \
0161 ((CONNECT) == DAC_CHIPCONNECT_INTERNAL) || \
0162 ((CONNECT) == DAC_CHIPCONNECT_BOTH))
0163
0164 #define IS_DAC_TRIMMING(TRIMMING) (((TRIMMING) == DAC_TRIMMING_FACTORY) || \
0165 ((TRIMMING) == DAC_TRIMMING_USER))
0166
0167 #define IS_DAC_LFSR_UNMASK_TRIANGLE_AMPLITUDE(VALUE) (((VALUE) == DAC_LFSRUNMASK_BIT0) || \
0168 ((VALUE) == DAC_LFSRUNMASK_BITS1_0) || \
0169 ((VALUE) == DAC_LFSRUNMASK_BITS2_0) || \
0170 ((VALUE) == DAC_LFSRUNMASK_BITS3_0) || \
0171 ((VALUE) == DAC_LFSRUNMASK_BITS4_0) || \
0172 ((VALUE) == DAC_LFSRUNMASK_BITS5_0) || \
0173 ((VALUE) == DAC_LFSRUNMASK_BITS6_0) || \
0174 ((VALUE) == DAC_LFSRUNMASK_BITS7_0) || \
0175 ((VALUE) == DAC_LFSRUNMASK_BITS8_0) || \
0176 ((VALUE) == DAC_LFSRUNMASK_BITS9_0) || \
0177 ((VALUE) == DAC_LFSRUNMASK_BITS10_0) || \
0178 ((VALUE) == DAC_LFSRUNMASK_BITS11_0) || \
0179 ((VALUE) == DAC_TRIANGLEAMPLITUDE_1) || \
0180 ((VALUE) == DAC_TRIANGLEAMPLITUDE_3) || \
0181 ((VALUE) == DAC_TRIANGLEAMPLITUDE_7) || \
0182 ((VALUE) == DAC_TRIANGLEAMPLITUDE_15) || \
0183 ((VALUE) == DAC_TRIANGLEAMPLITUDE_31) || \
0184 ((VALUE) == DAC_TRIANGLEAMPLITUDE_63) || \
0185 ((VALUE) == DAC_TRIANGLEAMPLITUDE_127) || \
0186 ((VALUE) == DAC_TRIANGLEAMPLITUDE_255) || \
0187 ((VALUE) == DAC_TRIANGLEAMPLITUDE_511) || \
0188 ((VALUE) == DAC_TRIANGLEAMPLITUDE_1023) || \
0189 ((VALUE) == DAC_TRIANGLEAMPLITUDE_2047) || \
0190 ((VALUE) == DAC_TRIANGLEAMPLITUDE_4095))
0191
0192
0193
0194
0195
0196
0197
0198
0199
0200
0201
0202
0203
0204
0205
0206
0207 HAL_StatusTypeDef HAL_DACEx_TriangleWaveGenerate(DAC_HandleTypeDef *hdac, uint32_t Channel, uint32_t Amplitude);
0208 HAL_StatusTypeDef HAL_DACEx_NoiseWaveGenerate(DAC_HandleTypeDef *hdac, uint32_t Channel, uint32_t Amplitude);
0209
0210 HAL_StatusTypeDef HAL_DACEx_DualStart(DAC_HandleTypeDef *hdac);
0211 HAL_StatusTypeDef HAL_DACEx_DualStop(DAC_HandleTypeDef *hdac);
0212 HAL_StatusTypeDef HAL_DACEx_DualStart_DMA(DAC_HandleTypeDef *hdac, uint32_t Channel,
0213 const uint32_t *pData, uint32_t Length, uint32_t Alignment);
0214 HAL_StatusTypeDef HAL_DACEx_DualStop_DMA(DAC_HandleTypeDef *hdac, uint32_t Channel);
0215 HAL_StatusTypeDef HAL_DACEx_DualSetValue(DAC_HandleTypeDef *hdac, uint32_t Alignment, uint32_t Data1, uint32_t Data2);
0216 uint32_t HAL_DACEx_DualGetValue(const DAC_HandleTypeDef *hdac);
0217
0218 void HAL_DACEx_ConvCpltCallbackCh2(DAC_HandleTypeDef *hdac);
0219 void HAL_DACEx_ConvHalfCpltCallbackCh2(DAC_HandleTypeDef *hdac);
0220 void HAL_DACEx_ErrorCallbackCh2(DAC_HandleTypeDef *hdac);
0221 void HAL_DACEx_DMAUnderrunCallbackCh2(DAC_HandleTypeDef *hdac);
0222
0223
0224
0225
0226
0227
0228
0229
0230
0231
0232
0233 HAL_StatusTypeDef HAL_DACEx_SelfCalibrate(DAC_HandleTypeDef *hdac, DAC_ChannelConfTypeDef *sConfig, uint32_t Channel);
0234 HAL_StatusTypeDef HAL_DACEx_SetUserTrimming(DAC_HandleTypeDef *hdac, DAC_ChannelConfTypeDef *sConfig, uint32_t Channel,
0235 uint32_t NewTrimmingValue);
0236 uint32_t HAL_DACEx_GetTrimOffset(const DAC_HandleTypeDef *hdac, uint32_t Channel);
0237
0238
0239
0240
0241
0242
0243
0244
0245
0246
0247
0248
0249
0250
0251
0252 void DAC_DMAConvCpltCh2(DMA_HandleTypeDef *hdma);
0253 void DAC_DMAErrorCh2(DMA_HandleTypeDef *hdma);
0254 void DAC_DMAHalfConvCpltCh2(DMA_HandleTypeDef *hdma);
0255
0256
0257
0258
0259
0260
0261
0262
0263
0264 #endif
0265
0266
0267
0268
0269
0270 #ifdef __cplusplus
0271 }
0272 #endif
0273
0274 #endif