44#ifndef G32R4xx_DDL_ADC16_H
45#define G32R4xx_DDL_ADC16_H
58#if defined (ADC1) || defined (ADC2)
79#define ADC_SQR1_REGOFFSET (0x00000000UL)
80#define ADC_SQR2_REGOFFSET (0x00000100UL)
82#define ADC_REG_SQRX_REGOFFSET_MASK (ADC_SQR1_REGOFFSET | ADC_SQR2_REGOFFSET)
83#define ADC_SQRX_REGOFFSET_POS (8UL)
84#define ADC_REG_RANK_ID_SQRX_MASK (0x1F)
88#define ADC_REG_RANK_1_SQRX_BITOFFSET_POS (ADC_SQR1_SQ1_Pos)
89#define ADC_REG_RANK_2_SQRX_BITOFFSET_POS (ADC_SQR1_SQ2_Pos)
90#define ADC_REG_RANK_3_SQRX_BITOFFSET_POS (ADC_SQR1_SQ3_Pos)
91#define ADC_REG_RANK_4_SQRX_BITOFFSET_POS (ADC_SQR1_SQ4_Pos)
92#define ADC_REG_RANK_5_SQRX_BITOFFSET_POS (ADC_SQR1_SQ5_Pos)
93#define ADC_REG_RANK_6_SQRX_BITOFFSET_POS (ADC_SQR1_SQ6_Pos)
94#define ADC_REG_RANK_7_SQRX_BITOFFSET_POS (ADC_SQR1_SQ7_Pos)
95#define ADC_REG_RANK_8_SQRX_BITOFFSET_POS (ADC_SQR2_SQ8_Pos)
96#define ADC_REG_RANK_9_SQRX_BITOFFSET_POS (ADC_SQR2_SQ9_Pos)
97#define ADC_REG_RANK_10_SQRX_BITOFFSET_POS (ADC_SQR2_SQ10_Pos)
98#define ADC_REG_RANK_11_SQRX_BITOFFSET_POS (ADC_SQR2_SQ11_Pos)
99#define ADC_REG_RANK_12_SQRX_BITOFFSET_POS (ADC_SQR2_SQ12_Pos)
108#define ADC_JDR1_REGOFFSET (0x00000000UL)
109#define ADC_JDR2_REGOFFSET (0x00000100UL)
110#define ADC_JDR3_REGOFFSET (0x00000200UL)
111#define ADC_JDR4_REGOFFSET (0x00000300UL)
113#define ADC_INJ_JDRX_REGOFFSET_MASK (ADC_JDR1_REGOFFSET | ADC_JDR2_REGOFFSET \
114 | ADC_JDR3_REGOFFSET | ADC_JDR4_REGOFFSET)
115#define ADC_INJ_RANK_ID_JSQR_MASK (0x1F)
116#define ADC_JDRX_REGOFFSET_POS (8UL)
120#define ADC_INJ_RANK_1_JSQR_BITOFFSET_POS (ADC_JSQR_JSQ1_Pos)
121#define ADC_INJ_RANK_2_JSQR_BITOFFSET_POS (ADC_JSQR_JSQ2_Pos)
122#define ADC_INJ_RANK_3_JSQR_BITOFFSET_POS (ADC_JSQR_JSQ3_Pos)
123#define ADC_INJ_RANK_4_JSQR_BITOFFSET_POS (ADC_JSQR_JSQ4_Pos)
129#define ADC_REG_TRIG_EXT_EDGE_DEFAULT (ADC_CFGR_EXTEN_0)
134#define ADC_REG_TRIG_SOURCE_MASK (((DDL_ADC16_REG_TRIG_SOFTWARE & ADC_CFGR_EXTSEL) << (4U * 0UL)) | \
135 ((ADC_CFGR_EXTSEL) << (4U * 1UL)) | \
136 ((ADC_CFGR_EXTSEL) << (4U * 2UL)) | \
137 ((ADC_CFGR_EXTSEL) << (4U * 3UL)) )
142#define ADC_REG_TRIG_EDGE_MASK (((DDL_ADC16_REG_TRIG_SOFTWARE & ADC_CFGR_EXTEN) << (4U * 0UL)) | \
143 ((ADC_REG_TRIG_EXT_EDGE_DEFAULT) << (4U * 1UL)) | \
144 ((ADC_REG_TRIG_EXT_EDGE_DEFAULT) << (4U * 2UL)) | \
145 ((ADC_REG_TRIG_EXT_EDGE_DEFAULT) << (4U * 3UL)) )
148#define ADC_REG_TRIG_EXTSEL_BITOFFSET_POS (ADC_CFGR_EXTSEL_Pos)
149#define ADC_REG_TRIG_EXTEN_BITOFFSET_POS (ADC_CFGR_EXTEN_Pos)
155#define ADC_INJ_TRIG_EXT_EDGE_DEFAULT (ADC_JSQR_JEXTEN_0)
160#define ADC_INJ_TRIG_SOURCE_MASK (((DDL_ADC16_INJ_TRIG_SOFTWARE & ADC_JSQR_JEXTSEL) << (4U * 0UL)) | \
161 ((ADC_JSQR_JEXTSEL) << (4U * 1UL)) | \
162 ((ADC_JSQR_JEXTSEL) << (4U * 2UL)) | \
163 ((ADC_JSQR_JEXTSEL) << (4U * 3UL)) )
168#define ADC_INJ_TRIG_EDGE_MASK (((DDL_ADC16_INJ_TRIG_SOFTWARE & ADC_JSQR_JEXTEN) << (4U * 0UL)) | \
169 ((ADC_INJ_TRIG_EXT_EDGE_DEFAULT) << (4U * 1UL)) | \
170 ((ADC_INJ_TRIG_EXT_EDGE_DEFAULT) << (4U * 2UL)) | \
171 ((ADC_INJ_TRIG_EXT_EDGE_DEFAULT) << (4U * 3UL)) )
174#define ADC_INJ_TRIG_EXTSEL_BITOFFSET_POS (ADC_JSQR_JEXTSEL_Pos)
175#define ADC_INJ_TRIG_EXTEN_BITOFFSET_POS (ADC_JSQR_JEXTEN_Pos)
185#define ADC16_CFGR_AWD1CH (0x7UL << ADC_CFGR_AWD1CH_Pos)
186#define ADC_CHANNEL_ID_NUMBER_MASK (ADC16_CFGR_AWD1CH)
187#define ADC_CHANNEL_ID_BITFIELD_MASK (ADC_AWD2CR_AWD2CH)
188#define ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS (ADC_CFGR_AWD1CH_Pos)
189#define ADC_CHANNEL_ID_MASK (ADC_CHANNEL_ID_NUMBER_MASK | ADC_CHANNEL_ID_BITFIELD_MASK \
190 | ADC_CHANNEL_ID_INTERNAL_CH_MASK)
192#define ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0 (ADC_SQR2_SQ8)
195#define ADC_CHANNEL_ID_INTERNAL_CH (0x80000000UL)
196#define ADC_CHANNEL_ID_INTERNAL_CH_2 (0x00080000UL)
197#define ADC_CHANNEL_ID_INTERNAL_CH_MASK (ADC_CHANNEL_ID_INTERNAL_CH | ADC_CHANNEL_ID_INTERNAL_CH_2)
201#define ADC_SMPR1_REGOFFSET (0x00000000UL)
202#define ADC_CHANNEL_SMPRX_REGOFFSET_MASK (ADC_SMPR1_REGOFFSET)
203#define ADC_SMPRX_REGOFFSET_POS (25UL)
205#define ADC_CHANNEL_SMPx_BITOFFSET_MASK (0x01F00000UL)
206#define ADC_CHANNEL_SMPx_BITOFFSET_POS (20UL)
210#define ADC_CHANNEL_0_NUMBER (0x00000000UL)
211#define ADC_CHANNEL_1_NUMBER (ADC_CFGR_AWD1CH_0)
212#define ADC_CHANNEL_2_NUMBER (ADC_CFGR_AWD1CH_1)
213#define ADC_CHANNEL_3_NUMBER (ADC_CFGR_AWD1CH_1 | ADC_CFGR_AWD1CH_0)
214#define ADC_CHANNEL_4_NUMBER (ADC_CFGR_AWD1CH_2)
215#define ADC_CHANNEL_5_NUMBER (ADC_CFGR_AWD1CH_2 | ADC_CFGR_AWD1CH_0)
219#define ADC_CHANNEL_0_BITFIELD (ADC_AWD2CR_AWD2CH_0)
220#define ADC_CHANNEL_1_BITFIELD (ADC_AWD2CR_AWD2CH_1)
221#define ADC_CHANNEL_2_BITFIELD (ADC_AWD2CR_AWD2CH_2)
222#define ADC_CHANNEL_3_BITFIELD (ADC_AWD2CR_AWD2CH_3)
223#define ADC_CHANNEL_4_BITFIELD (ADC_AWD2CR_AWD2CH_4)
224#define ADC_CHANNEL_5_BITFIELD (ADC_AWD2CR_AWD2CH_5)
228#define ADC_CHANNEL_0_SMP (ADC_SMPR1_REGOFFSET | (( 0UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS))
229#define ADC_CHANNEL_1_SMP (ADC_SMPR1_REGOFFSET | (( 4UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS))
230#define ADC_CHANNEL_2_SMP (ADC_SMPR1_REGOFFSET | (( 8UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS))
231#define ADC_CHANNEL_3_SMP (ADC_SMPR1_REGOFFSET | ((12UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS))
232#define ADC_CHANNEL_4_SMP (ADC_SMPR1_REGOFFSET | ((16UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS))
233#define ADC_CHANNEL_5_SMP (ADC_SMPR1_REGOFFSET | ((20UL) << ADC_CHANNEL_SMPx_BITOFFSET_POS))
244#define ADC_AWD_CR1_REGOFFSET (0x00000000UL)
245#define ADC_AWD_CR2_REGOFFSET (0x00100000UL)
246#define ADC_AWD_CR3_REGOFFSET (0x00200000UL)
250#define ADC_AWD_CR12_REGOFFSETGAP_MASK (ADC_AWD2CR_AWD2CH_0)
251#define ADC_AWD_CR12_REGOFFSETGAP_VAL (0x00000010UL)
253#define ADC_AWD_CRX_REGOFFSET_MASK (ADC_AWD_CR1_REGOFFSET | ADC_AWD_CR2_REGOFFSET | ADC_AWD_CR3_REGOFFSET)
255#define ADC_AWD_CR1_CHANNEL_MASK (ADC16_CFGR_AWD1CH | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL)
256#define ADC_AWD_CR23_CHANNEL_MASK (ADC_AWD2CR_AWD2CH)
257#define ADC_AWD_CR_ALL_CHANNEL_MASK (ADC_AWD_CR1_CHANNEL_MASK | ADC_AWD_CR23_CHANNEL_MASK)
259#define ADC_AWD_CRX_REGOFFSET_POS (20UL)
262#define ADC_AWD_TR1_REGOFFSET (ADC_AWD_CR1_REGOFFSET)
263#define ADC_AWD_TR2_REGOFFSET (ADC_AWD_CR2_REGOFFSET)
264#define ADC_AWD_TR3_REGOFFSET (ADC_AWD_CR3_REGOFFSET)
265#define ADC_AWD_TRX_REGOFFSET_MASK (ADC_AWD_TR1_REGOFFSET | ADC_AWD_TR2_REGOFFSET | ADC_AWD_TR3_REGOFFSET)
266#define ADC_AWD_TRX_REGOFFSET_POS (ADC_AWD_CRX_REGOFFSET_POS)
267#define ADC_AWD_TRX_BIT_HIGH_MASK (0x00010000UL)
268#define ADC_AWD_TRX_BIT_HIGH_POS (16UL)
269#define ADC_AWD_TRX_BIT_HIGH_SHIFT4 (ADC_AWD_TRX_BIT_HIGH_POS - 4UL)
273#define ADC_OFFSET0_REGOFFSET (0x00000000UL)
274#define ADC_OFFSET1_REGOFFSET (0x00000001UL)
275#define ADC_OFFSET2_REGOFFSET (0x00000002UL)
276#define ADC_OFFSET3_REGOFFSET (0x00000003UL)
277#define ADC_OFFSET4_REGOFFSET (0x00000004UL)
278#define ADC_OFFSET5_REGOFFSET (0x00000005UL)
279#define ADC_OFFSETx_REGOFFSET_MASK (ADC_OFFSET0_REGOFFSET | ADC_OFFSET1_REGOFFSET \
280 | ADC_OFFSET2_REGOFFSET | ADC_OFFSET3_REGOFFSET \
281 | ADC_OFFSET4_REGOFFSET | ADC_OFFSET5_REGOFFSET)
284#define ADC_CFGR_AWD1SGL_BITOFFSET_POS (ADC_CFGR_AWD1SGL_Pos)
285#define ADC_CFGR_AWD1EN_BITOFFSET_POS (ADC_CFGR_AWD1EN_Pos)
286#define ADC_CFGR_JAWD1EN_BITOFFSET_POS (ADC_CFGR_JAWD1EN_Pos)
287#define ADC_TR1_HT1_BITOFFSET_POS (ADC_TR1_HT1_Pos)
290#define ADC_CR_BITS_PROPERTY_RS (ADC_CR_JADSTP | ADC_CR_ADSTP | ADC_CR_JADSTART | ADC_CR_ADSTART | ADC_CR_ADEN)
296#define DDL_ADC16_REG_TRIG_SOFTWARE (0x00000000UL)
297#define DDL_ADC16_REG_TRIG_EXT_TMR1_CC1 (ADC_REG_TRIG_EXT_EDGE_DEFAULT)
298#define DDL_ADC16_REG_TRIG_EXT_TMR1_CC2 (ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT)
299#define DDL_ADC16_REG_TRIG_EXT_TMR1_CC3 (ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT)
300#define DDL_ADC16_REG_TRIG_EXT_TMR2_CC2 (ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT)
301#define DDL_ADC16_REG_TRIG_EXT_TMR3_TRGO (ADC_CFGR_EXTSEL_2 | ADC_REG_TRIG_EXT_EDGE_DEFAULT)
302#define DDL_ADC16_REG_TRIG_EXT_TMR4_CC4 (ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT)
303#define DDL_ADC16_REG_TRIG_EXT_EINT_LINE11 (ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT)
304#define DDL_ADC16_REG_TRIG_EXT_TMR1_TRGO (ADC_CFGR_EXTSEL_2 | ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT)
305#define DDL_ADC16_REG_TRIG_EXT_TMR2_TRGO (ADC_CFGR_EXTSEL_3 | ADC_REG_TRIG_EXT_EDGE_DEFAULT)
306#define DDL_ADC16_REG_TRIG_EXT_TMR4_TRGO (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT)
307#define DDL_ADC16_REG_TRIG_EXT_TMR3_CC4 (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1 | ADC_REG_TRIG_EXT_EDGE_DEFAULT)
308#define DDL_ADC16_REG_TRIG_EXT_LPTMROUT (ADC_CFGR_EXTSEL_3 | ADC_CFGR_EXTSEL_1 | ADC_CFGR_EXTSEL_0 | ADC_REG_TRIG_EXT_EDGE_DEFAULT)
316#define DDL_ADC16_REG_TRIG_EXT_RISING ( ADC_CFGR_EXTEN_0)
317#define DDL_ADC16_REG_TRIG_EXT_FALLING (ADC_CFGR_EXTEN_1 )
318#define DDL_ADC16_REG_TRIG_EXT_RISINGFALLING (ADC_CFGR_EXTEN_1 | ADC_CFGR_EXTEN_0)
326#define DDL_ADC16_REG_SEQ_SCAN_DISABLE (0x00000000UL)
327#define DDL_ADC16_REG_SEQ_SCAN_ENABLE_2RANKS ( ADC_SQR1_RL_0)
328#define DDL_ADC16_REG_SEQ_SCAN_ENABLE_3RANKS ( ADC_SQR1_RL_1 )
329#define DDL_ADC16_REG_SEQ_SCAN_ENABLE_4RANKS ( ADC_SQR1_RL_1 | ADC_SQR1_RL_0)
330#define DDL_ADC16_REG_SEQ_SCAN_ENABLE_5RANKS ( ADC_SQR1_RL_2 )
331#define DDL_ADC16_REG_SEQ_SCAN_ENABLE_6RANKS ( ADC_SQR1_RL_2 | ADC_SQR1_RL_0)
332#define DDL_ADC16_REG_SEQ_SCAN_ENABLE_7RANKS ( ADC_SQR1_RL_2 | ADC_SQR1_RL_1 )
333#define DDL_ADC16_REG_SEQ_SCAN_ENABLE_8RANKS ( ADC_SQR1_RL_2 | ADC_SQR1_RL_1 | ADC_SQR1_RL_0)
334#define DDL_ADC16_REG_SEQ_SCAN_ENABLE_9RANKS (ADC_SQR1_RL_3 )
335#define DDL_ADC16_REG_SEQ_SCAN_ENABLE_10RANKS (ADC_SQR1_RL_3 | ADC_SQR1_RL_0)
336#define DDL_ADC16_REG_SEQ_SCAN_ENABLE_11RANKS (ADC_SQR1_RL_3 | ADC_SQR1_RL_1 )
337#define DDL_ADC16_REG_SEQ_SCAN_ENABLE_12RANKS (ADC_SQR1_RL_3 | ADC_SQR1_RL_1 | ADC_SQR1_RL_0)
345#define DDL_ADC16_REG_SEQ_DISCONT_DISABLE (0x00000000UL)
346#define DDL_ADC16_REG_SEQ_DISCONT_1RANK ( ADC_CFGR_DISCEN)
347#define DDL_ADC16_REG_SEQ_DISCONT_2RANKS ( ADC_CFGR_DISCNUM_0 | ADC_CFGR_DISCEN)
348#define DDL_ADC16_REG_SEQ_DISCONT_3RANKS ( ADC_CFGR_DISCNUM_1 | ADC_CFGR_DISCEN)
349#define DDL_ADC16_REG_SEQ_DISCONT_4RANKS ( ADC_CFGR_DISCNUM_1 | ADC_CFGR_DISCNUM_0 | ADC_CFGR_DISCEN)
350#define DDL_ADC16_REG_SEQ_DISCONT_5RANKS (ADC_CFGR_DISCNUM_2 | ADC_CFGR_DISCEN)
351#define DDL_ADC16_REG_SEQ_DISCONT_6RANKS (ADC_CFGR_DISCNUM_2 | ADC_CFGR_DISCNUM_0 | ADC_CFGR_DISCEN)
359#define DDL_ADC16_REG_RANK_1 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_1_SQRX_BITOFFSET_POS)
360#define DDL_ADC16_REG_RANK_2 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_2_SQRX_BITOFFSET_POS)
361#define DDL_ADC16_REG_RANK_3 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_3_SQRX_BITOFFSET_POS)
362#define DDL_ADC16_REG_RANK_4 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_4_SQRX_BITOFFSET_POS)
363#define DDL_ADC16_REG_RANK_5 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_5_SQRX_BITOFFSET_POS)
364#define DDL_ADC16_REG_RANK_6 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_6_SQRX_BITOFFSET_POS)
365#define DDL_ADC16_REG_RANK_7 (ADC_SQR1_REGOFFSET | ADC_REG_RANK_7_SQRX_BITOFFSET_POS)
366#define DDL_ADC16_REG_RANK_8 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_8_SQRX_BITOFFSET_POS)
367#define DDL_ADC16_REG_RANK_9 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_9_SQRX_BITOFFSET_POS)
368#define DDL_ADC16_REG_RANK_10 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_10_SQRX_BITOFFSET_POS)
369#define DDL_ADC16_REG_RANK_11 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_11_SQRX_BITOFFSET_POS)
370#define DDL_ADC16_REG_RANK_12 (ADC_SQR2_REGOFFSET | ADC_REG_RANK_12_SQRX_BITOFFSET_POS)
378#define DDL_ADC16_INJ_SEQ_SCAN_DISABLE (0x00000000UL)
379#define DDL_ADC16_INJ_SEQ_SCAN_ENABLE_2RANKS ( ADC_JSQR_JL_0)
380#define DDL_ADC16_INJ_SEQ_SCAN_ENABLE_3RANKS (ADC_JSQR_JL_1 )
381#define DDL_ADC16_INJ_SEQ_SCAN_ENABLE_4RANKS (ADC_JSQR_JL_1 | ADC_JSQR_JL_0)
389#define DDL_ADC16_INJ_SEQ_DISCONT_DISABLE (0x00000000UL)
390#define DDL_ADC16_INJ_SEQ_DISCONT_1RANK (ADC_CFGR_JDISCEN)
398#define DDL_ADC16_MULTI_INDEPENDENT (0x00000000UL)
399#define DDL_ADC16_MULTI_DUAL_REG_SIMULT (ADC_CR_DUALMOD_2 | ADC_CR_DUALMOD_1)
400#define DDL_ADC16_MULTI_DUAL_REG_INTERL (ADC_CR_DUALMOD_2 | ADC_CR_DUALMOD_1 | ADC_CR_DUALMOD_0)
401#define DDL_ADC16_MULTI_DUAL_INJ_SIMULT (ADC_CR_DUALMOD_2 | ADC_CR_DUALMOD_0)
402#define DDL_ADC16_MULTI_DUAL_INJ_ALTERN (ADC_CR_DUALMOD_3 | ADC_CR_DUALMOD_0)
403#define DDL_ADC16_MULTI_DUAL_REG_SIM_INJ_SIM (ADC_CR_DUALMOD_0)
404#define DDL_ADC16_MULTI_DUAL_REG_SIM_INJ_ALT (ADC_CR_DUALMOD_1)
405#define DDL_ADC16_MULTI_DUAL_REG_INT_INJ_SIM (ADC_CR_DUALMOD_1 | ADC_CR_DUALMOD_0)
413#define DDL_ADC16_CR_ADDIS_NOT_EXECUTED (0x00000000UL)
414#define DDL_ADC16_CR_ADDIS_EXECUTION_IN_PROGRESS ADC_CR_ADDIS
422#define DDL_ADC16_SINGLE_INP0 (0x00U)
423#define DDL_ADC16_SINGLE_INP1 (0x01U)
424#define DDL_ADC16_SINGLE_INP2 (0x02U)
425#define DDL_ADC16_SINGLE_INN0 (0x03U)
426#define DDL_ADC16_SINGLE_INN1 (0x04U)
427#define DDL_ADC16_SINGLE_INN2 (0x05U)
435#define DDL_ADC16_DIFF_CHANNEL0 (0x00U)
436#define DDL_ADC16_DIFF_CHANNEL1 (0x01U)
437#define DDL_ADC16_DIFF_CHANNEL2 (0x02U)
447#if defined(USE_FULL_DDL_DRIVER)
559#define DDL_ADC16_DMA_REG_REGULAR_DATA (0x00000000UL)
567#define DDL_ADC16_LP_MODE_NONE (0x00000000UL)
568#define DDL_ADC16_LP_AUTOWAIT (ADC_CFGR_AUTDLY)
576#define DDL_ADC16_OFFSET_0 ADC_OFFSET0_REGOFFSET
577#define DDL_ADC16_OFFSET_1 ADC_OFFSET1_REGOFFSET
578#define DDL_ADC16_OFFSET_2 ADC_OFFSET2_REGOFFSET
579#define DDL_ADC16_OFFSET_3 ADC_OFFSET3_REGOFFSET
580#define DDL_ADC16_OFFSET_4 ADC_OFFSET4_REGOFFSET
581#define DDL_ADC16_OFFSET_5 ADC_OFFSET5_REGOFFSET
589#define DDL_ADC16_OFFSET_DISABLE (0x00000000UL)
590#define DDL_ADC16_OFFSET_ENABLE (ADC_OFFSET1_OFFSET1_EN)
598#define DDL_ADC16_OFFSET_SIGN_NEGATIVE (0x00000000UL)
599#define DDL_ADC16_OFFSET_SIGN_POSITIVE (ADC_OFFSET1_OFFSETPOS)
607#define DDL_ADC16_CHANNEL_0 (ADC_CHANNEL_0_NUMBER | ADC_CHANNEL_0_SMP | ADC_CHANNEL_0_BITFIELD )
608#define DDL_ADC16_CHANNEL_1 (ADC_CHANNEL_1_NUMBER | ADC_CHANNEL_1_SMP | ADC_CHANNEL_1_BITFIELD )
609#define DDL_ADC16_CHANNEL_2 (ADC_CHANNEL_2_NUMBER | ADC_CHANNEL_2_SMP | ADC_CHANNEL_2_BITFIELD )
610#define DDL_ADC16_CHANNEL_3 (ADC_CHANNEL_3_NUMBER | ADC_CHANNEL_3_SMP | ADC_CHANNEL_3_BITFIELD )
611#define DDL_ADC16_CHANNEL_4 (ADC_CHANNEL_4_NUMBER | ADC_CHANNEL_4_SMP | ADC_CHANNEL_4_BITFIELD )
612#define DDL_ADC16_CHANNEL_5 (ADC_CHANNEL_5_NUMBER | ADC_CHANNEL_5_SMP | ADC_CHANNEL_5_BITFIELD )
620#define DDL_ADC16_REG_CONV_SINGLE (0x00000000UL)
621#define DDL_ADC16_REG_CONV_CONTINUOUS (ADC_CFGR_CONT)
629#define DDL_ADC16_REG_DMA_TRANSFER_NONE (0x00000000UL)
630#define DDL_ADC16_REG_DMA_TRANSFER_LIMITED ( ADC_CFGR_DMAEN)
631#define DDL_ADC16_REG_DMA_TRANSFER_UNLIMITED (ADC_CFGR_DMACFG | ADC_CFGR_DMAEN)
639#define DDL_ADC16_REG_OVR_DATA_PRESERVED (0x00000000UL)
640#define DDL_ADC16_REG_OVR_DATA_OVERWRITTEN (ADC_CFGR_OVRMOD)
648#define DDL_ADC16_INJ_TRIG_SOFTWARE (0x00000000UL)
649#define DDL_ADC16_INJ_TRIG_EXT_TMR1_TRGO (ADC_INJ_TRIG_EXT_EDGE_DEFAULT)
650#define DDL_ADC16_INJ_TRIG_EXT_TMR1_CC4 (ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT)
651#define DDL_ADC16_INJ_TRIG_EXT_TMR2_TRGO (ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT)
652#define DDL_ADC16_INJ_TRIG_EXT_TMR2_CC1 (ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT)
653#define DDL_ADC16_INJ_TRIG_EXT_TMR2_CC4 (ADC_JSQR_JEXTSEL_2 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT)
654#define DDL_ADC16_INJ_TRIG_EXT_TMR4_TRGO (ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT)
655#define DDL_ADC16_INJ_TRIG_EXT_EINT_LINE15 (ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT)
656#define DDL_ADC16_INJ_TRIG_EXT_TMR3_CC3 (ADC_JSQR_JEXTSEL_2 | ADC_JSQR_JEXTSEL_1 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT)
657#define DDL_ADC16_INJ_TRIG_EXT_TMR3_TRGO (ADC_JSQR_JEXTSEL_3 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT)
658#define DDL_ADC16_INJ_TRIG_EXT_TMR3_CC1 (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_0 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT)
659#define DDL_ADC16_INJ_TRIG_EXT_LPTMROUT (ADC_JSQR_JEXTSEL_3 | ADC_JSQR_JEXTSEL_1 | ADC_INJ_TRIG_EXT_EDGE_DEFAULT)
667#define DDL_ADC16_INJ_TRIG_EXT_RISING ( ADC_JSQR_JEXTEN_0)
668#define DDL_ADC16_INJ_TRIG_EXT_FALLING (ADC_JSQR_JEXTEN_1 )
669#define DDL_ADC16_INJ_TRIG_EXT_RISINGFALLING (ADC_JSQR_JEXTEN_1 | ADC_JSQR_JEXTEN_0)
677#define DDL_ADC16_INJ_RANK_1 (ADC_JDR1_REGOFFSET | ADC_INJ_RANK_1_JSQR_BITOFFSET_POS)
678#define DDL_ADC16_INJ_RANK_2 (ADC_JDR2_REGOFFSET | ADC_INJ_RANK_2_JSQR_BITOFFSET_POS)
679#define DDL_ADC16_INJ_RANK_3 (ADC_JDR3_REGOFFSET | ADC_INJ_RANK_3_JSQR_BITOFFSET_POS)
680#define DDL_ADC16_INJ_RANK_4 (ADC_JDR4_REGOFFSET | ADC_INJ_RANK_4_JSQR_BITOFFSET_POS)
688#define DDL_ADC16_INJ_TRIG_INDEPENDENT (0x00000000UL)
689#define DDL_ADC16_INJ_TRIG_FROM_GRP_REGULAR (ADC_CFGR_JAUTO)
697#define DDL_ADC16_INJ_QUEUE_2CONTEXTS_LAST_ACTIVE (0x00000000UL)
698#define DDL_ADC16_INJ_QUEUE_2CONTEXTS_END_EMPTY (ADC_CFGR_JQM)
699#define DDL_ADC16_INJ_QUEUE_DISABLE (ADC_CFGR_JQDIS)
707#define DDL_ADC16_SAMPLINGTIME_1CYCLES (0x00000000)
708#define DDL_ADC16_SAMPLINGTIME_2CYCLES (ADC_SMPR1_SMP0_0)
709#define DDL_ADC16_SAMPLINGTIME_3CYCLES (ADC_SMPR1_SMP0_1)
710#define DDL_ADC16_SAMPLINGTIME_4CYCLES (ADC_SMPR1_SMP0_1 | ADC_SMPR1_SMP0_0)
711#define DDL_ADC16_SAMPLINGTIME_5CYCLES (ADC_SMPR1_SMP0_2)
712#define DDL_ADC16_SAMPLINGTIME_6CYCLES (ADC_SMPR1_SMP0_2 | ADC_SMPR1_SMP0_0)
713#define DDL_ADC16_SAMPLINGTIME_7CYCLES (ADC_SMPR1_SMP0_2 | ADC_SMPR1_SMP0_1)
714#define DDL_ADC16_SAMPLINGTIME_8CYCLES (ADC_SMPR1_SMP0_2 | ADC_SMPR1_SMP0_1 | ADC_SMPR1_SMP0_0)
715#define DDL_ADC16_SAMPLINGTIME_9CYCLES (ADC_SMPR1_SMP0_3)
716#define DDL_ADC16_SAMPLINGTIME_10CYCLES (ADC_SMPR1_SMP0_3 | ADC_SMPR1_SMP0_0)
717#define DDL_ADC16_SAMPLINGTIME_11CYCLES (ADC_SMPR1_SMP0_3 | ADC_SMPR1_SMP0_1)
718#define DDL_ADC16_SAMPLINGTIME_12CYCLES (ADC_SMPR1_SMP0_3 | ADC_SMPR1_SMP0_1 | ADC_SMPR1_SMP0_0)
719#define DDL_ADC16_SAMPLINGTIME_13CYCLES (ADC_SMPR1_SMP0_3 | ADC_SMPR1_SMP0_2)
720#define DDL_ADC16_SAMPLINGTIME_14CYCLES (ADC_SMPR1_SMP0_3 | ADC_SMPR1_SMP0_2 | ADC_SMPR1_SMP0_0)
721#define DDL_ADC16_SAMPLINGTIME_15CYCLES (ADC_SMPR1_SMP0_3 | ADC_SMPR1_SMP0_2 | ADC_SMPR1_SMP0_1)
722#define DDL_ADC16_SAMPLINGTIME_16CYCLES (ADC_SMPR1_SMP0_3 | ADC_SMPR1_SMP0_2 | ADC_SMPR1_SMP0_1 | ADC_SMPR1_SMP0_0)
731#define DDL_ADC16_AWD1 (ADC_AWD_CR1_CHANNEL_MASK | ADC_AWD_CR1_REGOFFSET)
732#define DDL_ADC16_AWD2 (ADC_AWD_CR23_CHANNEL_MASK | ADC_AWD_CR2_REGOFFSET)
733#define DDL_ADC16_AWD3 (ADC_AWD_CR23_CHANNEL_MASK | ADC_AWD_CR3_REGOFFSET)
741#define DDL_ADC16_AWD_DISABLE (0x00000000UL)
742#define DDL_ADC16_AWD_ALL_CHANNELS_REG (ADC_AWD_CR23_CHANNEL_MASK | ADC_CFGR_AWD1EN )
743#define DDL_ADC16_AWD_ALL_CHANNELS_INJ (ADC_AWD_CR23_CHANNEL_MASK | ADC_CFGR_JAWD1EN )
744#define DDL_ADC16_AWD_ALL_CHANNELS_REG_INJ (ADC_AWD_CR23_CHANNEL_MASK | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN )
745#define DDL_ADC16_AWD_CHANNEL_0_REG ((DDL_ADC16_CHANNEL_0 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL)
746#define DDL_ADC16_AWD_CHANNEL_0_INJ ((DDL_ADC16_CHANNEL_0 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL)
747#define DDL_ADC16_AWD_CHANNEL_0_REG_INJ ((DDL_ADC16_CHANNEL_0 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL)
748#define DDL_ADC16_AWD_CHANNEL_1_REG ((DDL_ADC16_CHANNEL_1 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL)
749#define DDL_ADC16_AWD_CHANNEL_1_INJ ((DDL_ADC16_CHANNEL_1 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL)
750#define DDL_ADC16_AWD_CHANNEL_1_REG_INJ ((DDL_ADC16_CHANNEL_1 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL)
751#define DDL_ADC16_AWD_CHANNEL_2_REG ((DDL_ADC16_CHANNEL_2 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL)
752#define DDL_ADC16_AWD_CHANNEL_2_INJ ((DDL_ADC16_CHANNEL_2 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL)
753#define DDL_ADC16_AWD_CHANNEL_2_REG_INJ ((DDL_ADC16_CHANNEL_2 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL)
754#define DDL_ADC16_AWD_CHANNEL_3_REG ((DDL_ADC16_CHANNEL_3 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL)
755#define DDL_ADC16_AWD_CHANNEL_3_INJ ((DDL_ADC16_CHANNEL_3 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL)
756#define DDL_ADC16_AWD_CHANNEL_3_REG_INJ ((DDL_ADC16_CHANNEL_3 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL)
757#define DDL_ADC16_AWD_CHANNEL_4_REG ((DDL_ADC16_CHANNEL_4 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL)
758#define DDL_ADC16_AWD_CHANNEL_4_INJ ((DDL_ADC16_CHANNEL_4 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL)
759#define DDL_ADC16_AWD_CHANNEL_4_REG_INJ ((DDL_ADC16_CHANNEL_4 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL)
760#define DDL_ADC16_AWD_CHANNEL_5_REG ((DDL_ADC16_CHANNEL_5 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL)
761#define DDL_ADC16_AWD_CHANNEL_5_INJ ((DDL_ADC16_CHANNEL_5 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1SGL)
762#define DDL_ADC16_AWD_CHANNEL_5_REG_INJ ((DDL_ADC16_CHANNEL_5 & ADC_CHANNEL_ID_MASK) | ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL)
771#define DDL_ADC16_AWD_THRESHOLD_HIGH (ADC_TR1_HT1 )
772#define DDL_ADC16_AWD_THRESHOLD_LOW ( ADC_TR1_LT1)
773#define DDL_ADC16_AWD_THRESHOLDS_HIGH_LOW (ADC_TR1_HT1 | ADC_TR1_LT1)
781#define DDL_ADC16_OVS_DISABLE (0x00000000UL)
782#define DDL_ADC16_OVS_GRP_REGULAR_CONTINUED ( ADC_CFGR2_ROVSE)
783#define DDL_ADC16_OVS_GRP_REGULAR_RESUMED (ADC_CFGR2_ROVSM | ADC_CFGR2_ROVSE)
784#define DDL_ADC16_OVS_GRP_INJECTED ( ADC_CFGR2_JOVSE )
785#define DDL_ADC16_OVS_GRP_INJ_REG_RESUMED ( ADC_CFGR2_JOVSE | ADC_CFGR2_ROVSE)
793#define DDL_ADC16_OVS_REG_CONT (0x00000000UL)
794#define DDL_ADC16_OVS_REG_DISCONT (ADC_CFGR2_TROVS)
802#define DDL_ADC16_OVS_RATIO_2 (0x00000000UL)
803#define DDL_ADC16_OVS_RATIO_4 ( ADC_CFGR2_OVSR_0)
804#define DDL_ADC16_OVS_RATIO_8 ( ADC_CFGR2_OVSR_1 )
805#define DDL_ADC16_OVS_RATIO_16 ( ADC_CFGR2_OVSR_1 | ADC_CFGR2_OVSR_0)
813#define DDL_ADC16_OVS_SHIFT_NONE (0x00000000UL)
814#define DDL_ADC16_OVS_SHIFT_RIGHT_1 ( ADC_CFGR2_OVSS_0)
815#define DDL_ADC16_OVS_SHIFT_RIGHT_2 ( ADC_CFGR2_OVSS_1 )
816#define DDL_ADC16_OVS_SHIFT_RIGHT_3 ( ADC_CFGR2_OVSS_1 | ADC_CFGR2_OVSS_0)
817#define DDL_ADC16_OVS_SHIFT_RIGHT_4 ( ADC_CFGR2_OVSS_2 )
826#define DDL_ADC16_FLAG_EOC ADC_ISR_EOC
827#define DDL_ADC16_FLAG_EOS ADC_ISR_EOS
828#define DDL_ADC16_FLAG_OVR ADC_ISR_OVR
829#define DDL_ADC16_FLAG_EOSMP ADC_ISR_EOSMP
830#define DDL_ADC16_FLAG_JEOC ADC_ISR_JEOC
831#define DDL_ADC16_FLAG_JEOS ADC_ISR_JEOS
832#define DDL_ADC16_FLAG_JQOVF ADC_ISR_JQOVF
833#define DDL_ADC16_FLAG_AWD1 ADC_ISR_AWD1
834#define DDL_ADC16_FLAG_AWD2 ADC_ISR_AWD2
835#define DDL_ADC16_FLAG_AWD3 ADC_ISR_AWD3
844#define DDL_ADC16_IT_EOC ADC_IER_EOCIE
845#define DDL_ADC16_IT_EOS ADC_IER_EOSIE
846#define DDL_ADC16_IT_OVR ADC_IER_OVRIE
847#define DDL_ADC16_IT_EOSMP ADC_IER_EOSMPIE
848#define DDL_ADC16_IT_JEOC ADC_IER_JEOCIE
849#define DDL_ADC16_IT_JEOS ADC_IER_JEOSIE
850#define DDL_ADC16_IT_JQOVF ADC_IER_JQOVFIE
851#define DDL_ADC16_IT_AWD1 ADC_IER_AWD1IE
852#define DDL_ADC16_IT_AWD2 ADC_IER_AWD2IE
853#define DDL_ADC16_IT_AWD3 ADC_IER_AWD3IE
861#define DDL_ADC16_SINGLE_ENDED (0x00000000)
862#define DDL_ADC16_DIFFERENTIAL_ENDED (ADC_CFGR2_DIFSEL_Msk)
870#define DDL_ADC16_AWD_FILTERING_NONE (0x00000000UL)
871#define DDL_ADC16_AWD_FILTERING_2SAMPLES ( ADC_CFGR2_AWDFILT_0)
872#define DDL_ADC16_AWD_FILTERING_3SAMPLES ( ADC_CFGR2_AWDFILT_1 )
873#define DDL_ADC16_AWD_FILTERING_4SAMPLES ( ADC_CFGR2_AWDFILT_1 | ADC_CFGR2_AWDFILT_0)
874#define DDL_ADC16_AWD_FILTERING_5SAMPLES (ADC_CFGR2_AWDFILT_2 )
875#define DDL_ADC16_AWD_FILTERING_6SAMPLES (ADC_CFGR2_AWDFILT_2 | ADC_CFGR2_AWDFILT_0)
876#define DDL_ADC16_AWD_FILTERING_7SAMPLES (ADC_CFGR2_AWDFILT_2 | ADC_CFGR2_AWDFILT_1 )
877#define DDL_ADC16_AWD_FILTERING_8SAMPLES (ADC_CFGR2_AWDFILT_2 | ADC_CFGR2_AWDFILT_1 | ADC_CFGR2_AWDFILT_0)
885#define DDL_ADC16_VREF_INTERNAL (ADC_CAL_REF_SEL)
886#define DDL_ADC16_VREF_EXTERNAL (0x00000000)
909#define __ADC_PTR_REG_OFFSET(__REG__, __REG_OFFFSET__) \
910 ((__IO uint32_t *)((uint32_t) ((uint32_t)(&(__REG__)) + ((__REG_OFFFSET__) << 2UL))))
930#define __DDL_ADC16_CHANNEL_TO_DECIMAL_NB(__CHANNEL__) \
931 ((((__CHANNEL__) & ADC_CHANNEL_ID_BITFIELD_MASK) == 0UL) ? \
933 ((__CHANNEL__) & ADC_CHANNEL_ID_NUMBER_MASK) >> ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS \
937 (uint32_t)POSITION_VAL((__CHANNEL__)) \
989 return (uint32_t) &(ADCx->DR);
1048 MODIFY_REG(ADCx->CFGR, ADC_CFGR_AUTDLY, LowPowerMode);
1098 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_AUTDLY));
1130 ADC_OFFSET1_OFFSET1_EN | ADC_OFFSET1_OFFSET1,
1131 ADC_OFFSET1_OFFSET1_EN | OffsetLevel);
1152 return (uint32_t) READ_BIT(*preg, ADC_OFFSET1_OFFSET1);
1180 ADC_OFFSET1_OFFSET1_EN,
1203 return (uint32_t) READ_BIT(*preg, ADC_OFFSET1_OFFSET1_EN);
1227 ADC_OFFSET1_OFFSETPOS,
1250 return (uint32_t) READ_BIT(*preg, ADC_OFFSET1_OFFSETPOS);
1286 MODIFY_REG(ADCx->CFGR, ADC_CFGR_EXTEN | ADC_CFGR_EXTSEL, TriggerSource);
1315 return (uint32_t)READ_BIT(ADCx->CFGR, ADC_CFGR_EXTEN | ADC_CFGR_EXTSEL);
1345 MODIFY_REG(ADCx->CFGR, ADC_CFGR_EXTEN, ExternalTriggerEdge);
1359 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_EXTEN));
1412 MODIFY_REG(ADCx->SQR1, ADC_SQR1_RL, SequencerNbRanks);
1461 return (uint32_t)(READ_BIT(ADCx->SQR1, ADC_SQR1_RL));
1485 MODIFY_REG(ADCx->CFGR, ADC_CFGR_DISCEN | ADC_CFGR_DISCNUM, SeqDiscont);
1504 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_DISCEN | ADC_CFGR_DISCNUM));
1545 __IO uint32_t temp = 0;
1550 case 0: temp = 1;
break;
1551 case 1: temp = 2;
break;
1552 case 2: temp = 3;
break;
1553 case 3: temp = 4;
break;
1554 case 4: temp = 8;
break;
1555 case 5: temp = 12;
break;
1556 default: temp = 0;
break;
1611 __IO uint32_t temp = 0;
1615 case 1: temp = 0;
break;
1616 case 2: temp = 1;
break;
1617 case 3: temp = 2;
break;
1618 case 4: temp = 3;
break;
1619 case 8: temp = 4;
break;
1620 case 12: temp = 5;
break;
1645 MODIFY_REG(ADCx->CFGR, ADC_CFGR_CONT, Continuous);
1661 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_CONT));
1696 MODIFY_REG(ADCx->CFGR, ADC_CFGR_DMAEN | ADC_CFGR_DMACFG, DMATransfer);
1729 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_DMAEN | ADC_CFGR_DMACFG));
1752 MODIFY_REG(ADCx->CFGR, ADC_CFGR_OVRMOD, Overrun);
1765 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_OVRMOD));
1803 MODIFY_REG(ADCx->JSQR, ADC_JSQR_JEXTSEL | ADC_JSQR_JEXTEN, TriggerSource);
1830 return (uint32_t)READ_BIT(ADCx->JSQR, ADC_JSQR_JEXTSEL | ADC_JSQR_JEXTEN);
1859 MODIFY_REG(ADCx->JSQR, ADC_JSQR_JEXTEN, ExternalTriggerEdge);
1873 return (uint32_t)(READ_BIT(ADCx->JSQR, ADC_JSQR_JEXTEN));
1897 MODIFY_REG(ADCx->JSQR, ADC_JSQR_JL, SequencerNbRanks);
1917 return (uint32_t)(READ_BIT(ADCx->JSQR, ADC_JSQR_JL));
1934 MODIFY_REG(ADCx->CFGR, ADC_CFGR_JDISCEN, SeqDiscont);
1948 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_JDISCEN));
1978 __IO uint32_t temp = 0;
1982 case 0: temp = 1;
break;
1983 case 1: temp = 2;
break;
1984 case 2: temp = 3;
break;
1985 case 3: temp = 4;
break;
1986 case 4: temp = 8;
break;
1987 case 5: temp = 12;
break;
1988 default: temp = 0;
break;
1991 MODIFY_REG(ADCx->JSQR,
2017 __IO uint32_t temp = 0;
2020 case 1: temp = 0;
break;
2021 case 2: temp = 1;
break;
2022 case 3: temp = 2;
break;
2023 case 4: temp = 3;
break;
2024 case 8: temp = 4;
break;
2025 case 12: temp = 5;
break;
2061 MODIFY_REG(ADCx->CFGR, ADC_CFGR_JAUTO, TrigAuto);
2074 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_JAUTO));
2114 MODIFY_REG(ADCx->CFGR, ADC_CFGR_JQM | ADC_CFGR_JQDIS, QueueMode);
2127 return (uint32_t)(READ_BIT(ADCx->CFGR, ADC_CFGR_JQM | ADC_CFGR_JQDIS));
2205 uint32_t TriggerSource,
2206 uint32_t ExternalTriggerEdge,
2207 uint32_t SequencerNbRanks,
2208 uint32_t Rank1_Channel,
2209 uint32_t Rank2_Channel,
2210 uint32_t Rank3_Channel,
2211 uint32_t Rank4_Channel)
2220 MODIFY_REG(ADCx->JSQR,
2228 (TriggerSource & ADC_JSQR_JEXTSEL) |
2229 (ExternalTriggerEdge * (is_trigger_not_sw)) |
2296 MODIFY_REG(ADCx->SMPR1,
2334 return (uint32_t)(READ_BIT(ADCx->SMPR1,
2361 return (uint32_t)READ_BIT(ADCx->CR, ADC_CR_ADDIS);
2398 MODIFY_REG(ADCx->CFGR2, ADC_CFGR2_DIFSEL, SingleDiff);
2429 return (uint32_t)(READ_BIT(ADCx->CFGR2, ADC_CFGR2_DIFSEL));
2502 AWDChannelGroup & AWDy);
2575 if (AnalogWDMonitChannels != 0UL)
2579 if ((AnalogWDMonitChannels & ADC_CFGR_AWD1SGL) == 0UL)
2582 AnalogWDMonitChannels = ((AnalogWDMonitChannels
2591 AnalogWDMonitChannels = (AnalogWDMonitChannels
2592 | (ADC_AWD2CR_AWD2CH_0 << (AnalogWDMonitChannels >> ADC_CFGR_AWD1CH_Pos))
2602 | ((ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN))
2609 AnalogWDMonitChannels = (AnalogWDMonitChannels
2610 | (ADC_CFGR_JAWD1EN | ADC_CFGR_AWD1EN | ADC_CFGR_AWD1SGL)
2617 return AnalogWDMonitChannels;
2651 uint32_t AWDThresholdLowValue)
2661 ADC_TR1_HT1 | ADC_TR1_LT1,
2700 uint32_t AWDThresholdValue)
2711 AWDThresholdsHighLow,
2739 return (uint32_t)(READ_BIT(*preg,
2740 (AWDThresholdsHighLow | ADC_TR1_LT1))
2742 & ~(AWDThresholdsHighLow & ADC_TR1_LT1)));
2767 MODIFY_REG(ADCx->CFGR2, ADC_CFGR2_AWDFILT, FilteringConfig);
2789 return (uint32_t)(READ_BIT(ADCx->CFGR2, ADC_CFGR2_AWDFILT));
2818 MODIFY_REG(ADCx->CFGR2, ADC_CFGR2_ROVSE | ADC_CFGR2_JOVSE | ADC_CFGR2_ROVSM, OvsScope);
2839 return (uint32_t)(READ_BIT(ADCx->CFGR2, ADC_CFGR2_ROVSE | ADC_CFGR2_JOVSE | ADC_CFGR2_ROVSM));
2861 MODIFY_REG(ADCx->CFGR2, ADC_CFGR2_TROVS, OverSamplingDiscont);
2879 return (uint32_t)(READ_BIT(ADCx->CFGR2, ADC_CFGR2_TROVS));
2904 MODIFY_REG(ADCx->CFGR2, (ADC_CFGR2_OVSS | ADC_CFGR2_OVSR), (Shift | Ratio));
2919 return (uint32_t)(READ_BIT(ADCx->CFGR2, ADC_CFGR2_OVSR));
2935 return (uint32_t)(READ_BIT(ADCx->CFGR2, ADC_CFGR2_OVSS));
2965 MODIFY_REG(ADCx->CR, ADC_CR_DUALMOD, Multimode);
2987 return (uint32_t)(READ_BIT(ADCx->CR, ADC_CR_DUALMOD));
3007 MODIFY_REG(ADCx->CR,
3022 MODIFY_REG(ADCx->CR,
3034 return ((READ_BIT(ADCx->CR, ADC_CR_ADEN) == (ADC_CR_ADEN)) ? 1UL : 0UL);
3054 MODIFY_REG(ADCx->CR,
3069 MODIFY_REG(ADCx->CR,
3081 return ((READ_BIT(ADCx->CR, ADC_CR_ADSTART) == (ADC_CR_ADSTART)) ? 1UL : 0UL);
3091 return ((READ_BIT(ADCx->CR, ADC_CR_ADSTP) == (ADC_CR_ADSTP)) ? 1UL : 0UL);
3104 return (uint32_t)(READ_BIT(ADCx->DR, ADC_DR_RDATA | ADC_DR_ADC2RDATA));
3125 MODIFY_REG(ADCx->CR,
3140 MODIFY_REG(ADCx->CR,
3152 return ((READ_BIT(ADCx->CR, ADC_CR_JADSTART) == (ADC_CR_JADSTART)) ? 1UL : 0UL);
3162 return ((READ_BIT(ADCx->CR, ADC_CR_JADSTP) == (ADC_CR_JADSTP)) ? 1UL : 0UL);
3182 return (uint32_t)(READ_BIT(*preg,ADC_JDR1_JDATA));
3223 return (uint32_t)READ_BIT(ADCx->CAL, ADC_CAL_REF_SEL);
3786 MODIFY_REG(ADCx->SMPR1,
3787 (0xFU << (4U * SingleCh)),
3788 ((SamplingTime & 0xFU) << (4U * SingleCh)));
3821 MODIFY_REG(ADCx->SMPR1,
3822 (0xFU << (4U * DiffCh)),
3823 ((SamplingTime & 0xFU) << (4U * DiffCh)));
3825 MODIFY_REG(ADCx->SMPR1,
3826 (0xFU << (4U * (DiffCh + 3U))),
3827 ((SamplingTime & 0xFU) << (4U * (DiffCh + 3U))));
3858 uint32_t channelMask;
3862 regOffset = (Rank & 0xFF00U);
3863 bitOffset = (Rank & 0x00FFU);
3865 channelMask = (0xFU << bitOffset);
3870 regVal = READ_REG(ADCx->SQR1);
3871 regVal &= ~channelMask;
3876 regVal |= ((SingleCh + 1U) << bitOffset);
3882 regVal |= ((SingleCh - 2U) << (bitOffset + 2U));
3884 WRITE_REG(ADCx->SQR1, regVal);
3889 regVal = READ_REG(ADCx->SQR2);
3890 regVal &= ~channelMask;
3895 regVal |= ((SingleCh + 1U) << bitOffset);
3900 regVal |= ((SingleCh - 2U) << (bitOffset + 2U));
3902 WRITE_REG(ADCx->SQR2, regVal);
3931 uint32_t channelMask;
3932 uint32_t posShifted;
3933 uint32_t negShifted;
3937 regOffset = (Rank & 0xFF00U);
3938 bitOffset = (Rank & 0x00FFU);
3939 channelMask = (0xFU << bitOffset);
3944 regVal = READ_REG(ADCx->SQR1);
3945 regVal &= ~channelMask;
3947 posShifted = ((DiffCh + 1U) << bitOffset);
3948 negShifted = ((DiffCh + 1U) << (bitOffset + 2U));
3949 regVal |= (posShifted | negShifted);
3951 WRITE_REG(ADCx->SQR1, regVal);
3956 regVal = READ_REG(ADCx->SQR2);
3957 regVal &= ~channelMask;
3959 posShifted = ((DiffCh + 1U) << bitOffset);
3960 negShifted = ((DiffCh + 1U) << (bitOffset + 2U));
3961 regVal |= (posShifted | negShifted);
3963 WRITE_REG(ADCx->SQR2, regVal);
3971#if defined(USE_FULL_DDL_DRIVER)
#define DDL_ADC16_CR_ADDIS_EXECUTION_IN_PROGRESS
#define DDL_ADC16_VREF_INTERNAL
#define DDL_ADC16_VREF_EXTERNAL
#define DDL_ADC16_FLAG_AWD2
#define DDL_ADC16_FLAG_EOS
#define DDL_ADC16_FLAG_AWD1
#define DDL_ADC16_FLAG_JQOVF
#define DDL_ADC16_FLAG_OVR
#define DDL_ADC16_FLAG_EOSMP
#define DDL_ADC16_FLAG_AWD3
#define DDL_ADC16_FLAG_JEOC
#define DDL_ADC16_FLAG_JEOS
#define DDL_ADC16_FLAG_EOC
#define DDL_ADC16_INJ_RANK_1
#define DDL_ADC16_INJ_RANK_3
#define DDL_ADC16_INJ_RANK_4
#define DDL_ADC16_INJ_RANK_2
#define DDL_ADC16_INJ_TRIG_SOFTWARE
#define DDL_ADC16_IT_EOSMP
#define DDL_ADC16_IT_JEOS
#define DDL_ADC16_IT_AWD2
#define DDL_ADC16_IT_JQOVF
#define DDL_ADC16_IT_AWD1
#define DDL_ADC16_IT_AWD3
#define DDL_ADC16_IT_JEOC
#define DDL_ADC16_REG_TRIG_SOFTWARE
#define DDL_ADC16_SINGLE_INN0
__STATIC_INLINE uint32_t DDL_ADC16_GetAnalogWDMonitChannels(ADC16_TypeDef *ADCx, uint32_t AWDy)
Get ADC analog watchdog monitored channel.
__STATIC_INLINE void DDL_ADC16_ConfigAnalogWDThresholds(ADC16_TypeDef *ADCx, uint32_t AWDy, uint32_t AWDThresholdHighValue, uint32_t AWDThresholdLowValue)
Set ADC analog watchdog thresholds value of both thresholds high and low.
__STATIC_INLINE uint32_t DDL_ADC16_GetAnalogWDThresholds(ADC16_TypeDef *ADCx, uint32_t AWDy, uint32_t AWDThresholdsHighLow)
Get ADC analog watchdog threshold value of threshold high, threshold low or raw data with ADC thresho...
__STATIC_INLINE void DDL_ADC16_SetAWDFilteringConfiguration(ADC16_TypeDef *ADCx, uint32_t AWDy, uint32_t FilteringConfig)
Set ADC analog watchdog filtering configuration.
__STATIC_INLINE void DDL_ADC16_SetAnalogWDMonitChannels(ADC16_TypeDef *ADCx, uint32_t AWDy, uint32_t AWDChannelGroup)
Set ADC analog watchdog monitored channels: a single channel, multiple channels or all channels,...
__STATIC_INLINE uint32_t DDL_ADC16_GetAWDFilteringConfiguration(ADC16_TypeDef *ADCx, uint32_t AWDy)
Get ADC analog watchdog filtering configuration.
__STATIC_INLINE void DDL_ADC16_SetAnalogWDThresholds(ADC16_TypeDef *ADCx, uint32_t AWDy, uint32_t AWDThresholdsHighLow, uint32_t AWDThresholdValue)
Set ADC analog watchdog threshold value of threshold high or low.
__STATIC_INLINE uint32_t DDL_ADC16_INJ_GetSequencerRanks(ADC16_TypeDef *ADCx, uint32_t Rank)
Get ADC group injected sequence: channel on the selected sequence rank.
__STATIC_INLINE uint32_t DDL_ADC16_INJ_GetTriggerEdge(ADC16_TypeDef *ADCx)
Get ADC group injected conversion trigger polarity. Applicable only for trigger source set to externa...
__STATIC_INLINE uint32_t DDL_ADC16_INJ_GetSequencerDiscont(ADC16_TypeDef *ADCx)
Get ADC group injected sequencer discontinuous mode: sequence subdivided and scan conversions interru...
__STATIC_INLINE uint32_t DDL_ADC16_INJ_GetTrigAuto(ADC16_TypeDef *ADCx)
Get ADC group injected conversion trigger: independent or from ADC group regular.
__STATIC_INLINE void DDL_ADC16_INJ_ConfigQueueContext(ADC16_TypeDef *ADCx, uint32_t TriggerSource, uint32_t ExternalTriggerEdge, uint32_t SequencerNbRanks, uint32_t Rank1_Channel, uint32_t Rank2_Channel, uint32_t Rank3_Channel, uint32_t Rank4_Channel)
Set one context on ADC group injected that will be checked in contexts queue.
__STATIC_INLINE uint32_t DDL_ADC16_INJ_IsTriggerSourceSWStart(ADC16_TypeDef *ADCx)
Get ADC group injected conversion trigger source internal (SW start) or external.
__STATIC_INLINE void DDL_ADC16_INJ_SetTrigAuto(ADC16_TypeDef *ADCx, uint32_t TrigAuto)
Set ADC group injected conversion trigger: independent or from ADC group regular.
__STATIC_INLINE uint32_t DDL_ADC16_INJ_GetTriggerSource(ADC16_TypeDef *ADCx)
Get ADC group injected conversion trigger source: internal (SW start) or from external peripheral (ti...
__STATIC_INLINE void DDL_ADC16_INJ_SetTriggerEdge(ADC16_TypeDef *ADCx, uint32_t ExternalTriggerEdge)
Set ADC group injected conversion trigger polarity. Applicable only for trigger source set to externa...
__STATIC_INLINE void DDL_ADC16_INJ_SetQueueMode(ADC16_TypeDef *ADCx, uint32_t QueueMode)
Set ADC group injected contexts queue mode.
__STATIC_INLINE void DDL_ADC16_INJ_SetSequencerRanks(ADC16_TypeDef *ADCx, uint32_t Rank, uint32_t Channel)
Set ADC group injected sequence: channel on the selected sequence rank.
__STATIC_INLINE void DDL_ADC16_INJ_SetSequencerDiscont(ADC16_TypeDef *ADCx, uint32_t SeqDiscont)
Set ADC group injected sequencer discontinuous mode: sequence subdivided and scan conversions interru...
__STATIC_INLINE uint32_t DDL_ADC16_INJ_GetQueueMode(ADC16_TypeDef *ADCx)
Get ADC group injected context queue mode.
__STATIC_INLINE void DDL_ADC16_INJ_SetSequencerLength(ADC16_TypeDef *ADCx, uint32_t SequencerNbRanks)
Set ADC group injected sequencer length and scan direction.
__STATIC_INLINE uint32_t DDL_ADC16_INJ_GetSequencerLength(ADC16_TypeDef *ADCx)
Get ADC group injected sequencer length and scan direction.
__STATIC_INLINE void DDL_ADC16_INJ_SetTriggerSource(ADC16_TypeDef *ADCx, uint32_t TriggerSource)
Set ADC group injected conversion trigger source: internal (SW start) or from external peripheral (ti...
__STATIC_INLINE void DDL_ADC16_REG_SetSequencerRanks(ADC16_TypeDef *ADCx, uint32_t Rank, uint32_t Channel)
Set ADC group regular sequence: channel on the selected scan sequence rank.
__STATIC_INLINE void DDL_ADC16_REG_SetTriggerSource(ADC16_TypeDef *ADCx, uint32_t TriggerSource)
Set ADC group regular conversion trigger source: internal (SW start) or from external peripheral (tim...
__STATIC_INLINE void DDL_ADC16_REG_SetSequencerLength(ADC16_TypeDef *ADCx, uint32_t SequencerNbRanks)
Set ADC group regular sequencer length and scan direction.
__STATIC_INLINE void DDL_ADC16_REG_SetContinuousMode(ADC16_TypeDef *ADCx, uint32_t Continuous)
Set ADC continuous conversion mode on ADC group regular.
__STATIC_INLINE void DDL_ADC16_REG_SetOverrun(ADC16_TypeDef *ADCx, uint32_t Overrun)
Set ADC group regular behavior in case of overrun: data preserved or overwritten.
__STATIC_INLINE uint32_t DDL_ADC16_REG_GetSequencerLength(ADC16_TypeDef *ADCx)
Get ADC group regular sequencer length and scan direction.
__STATIC_INLINE void DDL_ADC16_REG_SetDMATransfer(ADC16_TypeDef *ADCx, uint32_t DMATransfer)
Set ADC group regular conversion data transfer: no transfer or transfer by DMA, and DMA requests mode...
__STATIC_INLINE uint32_t DDL_ADC16_REG_GetSequencerDiscont(ADC16_TypeDef *ADCx)
Get ADC group regular sequencer discontinuous mode: sequence subdivided and scan conversions interrup...
__STATIC_INLINE void DDL_ADC16_REG_SetSequencerDiscont(ADC16_TypeDef *ADCx, uint32_t SeqDiscont)
Set ADC group regular sequencer discontinuous mode: sequence subdivided and scan conversions interrup...
__STATIC_INLINE uint32_t DDL_ADC16_REG_GetTriggerEdge(ADC16_TypeDef *ADCx)
Get ADC group regular conversion trigger polarity.
__STATIC_INLINE uint32_t DDL_ADC16_REG_GetContinuousMode(ADC16_TypeDef *ADCx)
Get ADC continuous conversion mode on ADC group regular.
__STATIC_INLINE uint32_t DDL_ADC16_REG_GetOverrun(ADC16_TypeDef *ADCx)
Get ADC group regular behavior in case of overrun: data preserved or overwritten.
__STATIC_INLINE uint32_t DDL_ADC16_REG_GetSequencerRanks(ADC16_TypeDef *ADCx, uint32_t Rank)
Get ADC group regular sequence: channel on the selected scan sequence rank. Refer to description of f...
__STATIC_INLINE uint32_t DDL_ADC16_REG_GetDMATransfer(ADC16_TypeDef *ADCx)
Get ADC group regular conversion data transfer: no transfer or transfer by DMA, and DMA requests mode...
__STATIC_INLINE uint32_t DDL_ADC16_REG_IsTriggerSourceSWStart(ADC16_TypeDef *ADCx)
Get ADC group regular conversion trigger source internal (SW start) or external.
__STATIC_INLINE void DDL_ADC16_REG_SetTriggerEdge(ADC16_TypeDef *ADCx, uint32_t ExternalTriggerEdge)
Set ADC group regular conversion trigger polarity.
__STATIC_INLINE uint32_t DDL_ADC16_REG_GetTriggerSource(ADC16_TypeDef *ADCx)
Get ADC group regular conversion trigger source: internal (SW start) or from external peripheral (tim...
__STATIC_INLINE uint32_t DDL_ADC16_GetOffsetState(ADC16_TypeDef *ADCx, uint32_t Offsety)
Get for the ADC selected offset number 1, 2, 3 or 4: offset state disabled or enabled.
__STATIC_INLINE void DDL_ADC16_SetOffset(ADC16_TypeDef *ADCx, uint32_t Offsety, uint32_t OffsetLevel)
Set ADC selected offset number 1, 2, 3 or 4.
__STATIC_INLINE uint32_t DDL_ADC16_GetOffsetSign(ADC16_TypeDef *ADCx, uint32_t Offsety)
Get for the ADC selected offset number 1, 2, 3 or 4: offset sign if positive or negative.
__STATIC_INLINE void DDL_ADC16_SetLowPowerMode(ADC16_TypeDef *ADCx, uint32_t LowPowerMode)
Set ADC low power mode.
__STATIC_INLINE void DDL_ADC16_SetOffsetState(ADC16_TypeDef *ADCx, uint32_t Offsety, uint32_t OffsetState)
Set for the ADC selected offset number 1, 2, 3 or 4: force offset state disable or enable without mod...
__STATIC_INLINE uint32_t DDL_ADC16_GetLowPowerMode(ADC16_TypeDef *ADCx)
Get ADC low power mode:
__STATIC_INLINE void DDL_ADC16_SetOffsetSign(ADC16_TypeDef *ADCx, uint32_t Offsety, uint32_t OffsetSign)
Set for the ADC selected offset number 1, 2, 3 or 4: choose offset sign.
__STATIC_INLINE uint32_t DDL_ADC16_GetOffsetLevel(ADC16_TypeDef *ADCx, uint32_t Offsety)
Get for the ADC selected offset number 1, 2, 3 or 4: Offset level (offset to be subtracted from the r...
__STATIC_INLINE uint32_t DDL_ADC16_GetMultimode(ADC16_TypeDef *ADCx)
Get ADC multimode configuration to operate in independent mode or multimode (for devices with several...
__STATIC_INLINE void DDL_ADC16_SetMultimode(ADC16_TypeDef *ADCx, uint32_t Multimode)
Set ADC multimode configuration to operate in independent mode or multimode (for devices with several...
__STATIC_INLINE void DDL_ADC16_SetOverSamplingScope(ADC16_TypeDef *ADCx, uint32_t OvsScope)
Set ADC oversampling scope: ADC groups regular and-or injected.
__STATIC_INLINE uint32_t DDL_ADC16_GetOverSamplingRatio(ADC16_TypeDef *ADCx)
Get ADC oversampling ratio (impacting both ADC groups regular and injected).
__STATIC_INLINE uint32_t DDL_ADC16_GetOverSamplingShift(ADC16_TypeDef *ADCx)
Get ADC oversampling shift (impacting both ADC groups regular and injected).
__STATIC_INLINE uint32_t DDL_ADC16_GetOverSamplingScope(ADC16_TypeDef *ADCx)
Get ADC oversampling scope: ADC groups regular and-or injected.
__STATIC_INLINE uint32_t DDL_ADC16_GetOverSamplingDiscont(ADC16_TypeDef *ADCx)
Get ADC oversampling discontinuous mode (triggered mode) on the selected ADC group.
__STATIC_INLINE void DDL_ADC16_ConfigOverSamplingRatioShift(ADC16_TypeDef *ADCx, uint32_t Ratio, uint32_t Shift)
Set ADC oversampling (impacting both ADC groups regular and injected).
__STATIC_INLINE void DDL_ADC16_SetOverSamplingDiscont(ADC16_TypeDef *ADCx, uint32_t OverSamplingDiscont)
Set ADC oversampling discontinuous mode (triggered mode) on the selected ADC group.
__STATIC_INLINE uint32_t DDL_ADC16_GetDisableCommandStatus(ADC16_TypeDef *ADCx)
Get ADC Disable Command.
__STATIC_INLINE void DDL_ADC16_SetChannelSamplingTime(ADC16_TypeDef *ADCx, uint32_t Channel, uint32_t SamplingTime)
Set sampling time of the selected ADC channel Unit: ADC clock cycles.
__STATIC_INLINE uint32_t DDL_ADC16_GetChannelSamplingTime(ADC16_TypeDef *ADCx, uint32_t Channel)
Get sampling time of the selected ADC channel Unit: ADC clock cycles.
__STATIC_INLINE void DDL_ADC16_SetDisableCommand(ADC16_TypeDef *ADCx)
Set ADC Disable Command.
__STATIC_INLINE void DDL_ADC16_SetChannelSingleDiff(ADC16_TypeDef *ADCx, uint32_t Channel, uint32_t SingleDiff)
Set mode single-ended or differential input of the selected ADC channel.
__STATIC_INLINE uint32_t DDL_ADC16_GetChannelSingleDiff(ADC16_TypeDef *ADCx, uint32_t Channel)
Get mode single-ended or differential input of the selected ADC channel.
__STATIC_INLINE uint32_t DDL_ADC16_DMA_GetRegAddr(ADC16_TypeDef *ADCx, uint32_t Register)
Function to help to configure DMA transfer from ADC: retrieve the ADC register address from ADC insta...
__STATIC_INLINE void DDL_ADC16_ClearFlag_JEOS(ADC16_TypeDef *ADCx)
Clear flag ADC group injected end of sequence conversions.
__STATIC_INLINE void DDL_ADC16_ClearFlag_AWD1(ADC16_TypeDef *ADCx)
Clear flag ADC analog watchdog 1.
__STATIC_INLINE uint32_t DDL_ADC16_IsActiveFlag_OVR(ADC16_TypeDef *ADCx)
Get flag ADC group regular overrun.
__STATIC_INLINE uint32_t DDL_ADC16_IsActiveFlag_JQOVF(ADC16_TypeDef *ADCx)
Get flag ADC group injected contexts queue overflow.
__STATIC_INLINE void DDL_ADC16_ClearFlag_EOC(ADC16_TypeDef *ADCx)
Clear flag ADC group regular end of unitary conversion.
__STATIC_INLINE void DDL_ADC16_ClearFlag_JEOC(ADC16_TypeDef *ADCx)
Clear flag ADC group injected end of unitary conversion.
__STATIC_INLINE uint32_t DDL_ADC16_IsActiveFlag_AWD1(ADC16_TypeDef *ADCx)
Get flag ADC analog watchdog 1 flag.
__STATIC_INLINE uint32_t DDL_ADC16_IsActiveFlag_JEOS(ADC16_TypeDef *ADCx)
Get flag ADC group injected end of sequence conversions.
__STATIC_INLINE uint32_t DDL_ADC16_IsActiveFlag_JEOC(ADC16_TypeDef *ADCx)
Get flag ADC group injected end of unitary conversion.
__STATIC_INLINE uint32_t DDL_ADC16_IsActiveFlag_EOC(ADC16_TypeDef *ADCx)
Get flag ADC group regular end of unitary conversion.
__STATIC_INLINE void DDL_ADC16_ClearFlag_EOS(ADC16_TypeDef *ADCx)
Clear flag ADC group regular end of sequence conversions.
__STATIC_INLINE void DDL_ADC16_ClearFlag_OVR(ADC16_TypeDef *ADCx)
Clear flag ADC group regular overrun.
__STATIC_INLINE uint32_t DDL_ADC16_IsActiveFlag_EOS(ADC16_TypeDef *ADCx)
Get flag ADC group regular end of sequence conversions.
__STATIC_INLINE void DDL_ADC16_ClearFlag_EOSMP(ADC16_TypeDef *ADCx)
Clear flag ADC group regular end of sampling phase.
__STATIC_INLINE uint32_t DDL_ADC16_IsActiveFlag_AWD2(ADC16_TypeDef *ADCx)
Get flag ADC analog watchdog 2.
__STATIC_INLINE void DDL_ADC16_ClearFlag_JQOVF(ADC16_TypeDef *ADCx)
Clear flag ADC group injected contexts queue overflow.
__STATIC_INLINE uint32_t DDL_ADC16_IsActiveFlag_EOSMP(ADC16_TypeDef *ADCx)
Get flag ADC group regular end of sampling phase.
__STATIC_INLINE void DDL_ADC16_ClearFlag_AWD2(ADC16_TypeDef *ADCx)
Clear flag ADC analog watchdog 2.
__STATIC_INLINE void DDL_ADC16_ClearFlag_AWD3(ADC16_TypeDef *ADCx)
Clear flag ADC analog watchdog 3.
__STATIC_INLINE uint32_t DDL_ADC16_IsActiveFlag_AWD3(ADC16_TypeDef *ADCx)
Get flag ADC analog watchdog 3.
__STATIC_INLINE void DDL_ADC16_DisableIT_EOC(ADC16_TypeDef *ADCx)
Disable interruption ADC group regular end of unitary conversion.
__STATIC_INLINE void DDL_ADC16_DisableIT_JEOS(ADC16_TypeDef *ADCx)
Disable interruption ADC group injected end of sequence conversions.
__STATIC_INLINE void DDL_ADC16_DisableIT_JEOC(ADC16_TypeDef *ADCx)
Disable interruption ADC group regular end of unitary conversion.
__STATIC_INLINE void DDL_ADC16_DisableIT_EOS(ADC16_TypeDef *ADCx)
Disable interruption ADC group regular end of sequence conversions.
__STATIC_INLINE void DDL_ADC16_EnableIT_EOC(ADC16_TypeDef *ADCx)
Enable interruption ADC group regular end of unitary conversion.
__STATIC_INLINE void DDL_ADC16_EnableIT_AWD2(ADC16_TypeDef *ADCx)
Enable interruption ADC analog watchdog 2.
__STATIC_INLINE void DDL_ADC16_DisableIT_EOSMP(ADC16_TypeDef *ADCx)
Disable interruption ADC group regular end of sampling.
__STATIC_INLINE uint32_t DDL_ADC16_IsEnabledIT_JQOVF(ADC16_TypeDef *ADCx)
Get state of interruption ADC group injected context queue overflow interrupt state (0: interrupt dis...
__STATIC_INLINE void DDL_ADC16_EnableIT_JEOS(ADC16_TypeDef *ADCx)
Enable interruption ADC group injected end of sequence conversions.
__STATIC_INLINE void DDL_ADC16_DisableIT_JQOVF(ADC16_TypeDef *ADCx)
Disable interruption ADC group injected context queue overflow.
__STATIC_INLINE void DDL_ADC16_EnableIT_EOSMP(ADC16_TypeDef *ADCx)
Enable interruption ADC group regular end of sampling.
__STATIC_INLINE void DDL_ADC16_DisableIT_OVR(ADC16_TypeDef *ADCx)
Disable interruption ADC group regular overrun.
__STATIC_INLINE uint32_t DDL_ADC16_IsEnabledIT_JEOC(ADC16_TypeDef *ADCx)
Get state of interruption ADC group injected end of unitary conversion (0: interrupt disabled,...
__STATIC_INLINE void DDL_ADC16_EnableIT_JQOVF(ADC16_TypeDef *ADCx)
Enable interruption ADC group injected context queue overflow.
__STATIC_INLINE void DDL_ADC16_SetChannelSamplingTime_Single(ADC16_TypeDef *ADCx, uint32_t SingleCh, uint32_t SamplingTime)
Set the sampling time for a single-ended ADC channel. The sampling time is in terms of ADC clock cycl...
__STATIC_INLINE void DDL_ADC16_DisableIT_AWD3(ADC16_TypeDef *ADCx)
Disable interruption ADC analog watchdog 3.
__STATIC_INLINE void DDL_ADC16_SetChannelSamplingTime_Diff(ADC16_TypeDef *ADCx, uint32_t DiffCh, uint32_t SamplingTime)
Set the sampling time for a differential ADC channel. The function updates both the positive and nega...
__STATIC_INLINE void DDL_ADC16_EnableIT_OVR(ADC16_TypeDef *ADCx)
Enable ADC group regular interruption overrun.
__STATIC_INLINE void DDL_ADC16_EnableIT_EOS(ADC16_TypeDef *ADCx)
Enable interruption ADC group regular end of sequence conversions.
__STATIC_INLINE void DDL_ADC16_DisableIT_AWD1(ADC16_TypeDef *ADCx)
Disable interruption ADC analog watchdog 1.
__STATIC_INLINE uint32_t DDL_ADC16_IsEnabledIT_EOSMP(ADC16_TypeDef *ADCx)
Get state of interruption ADC group regular end of sampling (0: interrupt disabled,...
__STATIC_INLINE void DDL_ADC16_SetSequencerRanks_Single(ADC16_TypeDef *ADCx, uint32_t Rank, uint32_t SingleCh)
Configure a single-ended channel rank in the regular conversion sequence.
__STATIC_INLINE void DDL_ADC16_EnableIT_AWD3(ADC16_TypeDef *ADCx)
Enable interruption ADC analog watchdog 3.
__STATIC_INLINE void DDL_ADC16_EnableIT_JEOC(ADC16_TypeDef *ADCx)
Enable interruption ADC group injected end of unitary conversion.
__STATIC_INLINE uint32_t DDL_ADC16_IsEnabledIT_AWD1(ADC16_TypeDef *ADCx)
Get state of interruption ADC analog watchdog 1 (0: interrupt disabled, 1: interrupt enabled).
__STATIC_INLINE void DDL_ADC16_EnableIT_AWD1(ADC16_TypeDef *ADCx)
Enable interruption ADC analog watchdog 1.
__STATIC_INLINE uint32_t DDL_ADC16_IsEnabledIT_EOC(ADC16_TypeDef *ADCx)
Get state of interruption ADC group regular end of unitary conversion (0: interrupt disabled,...
__STATIC_INLINE void DDL_ADC16_SetSequencerRanks_Diff(ADC16_TypeDef *ADCx, uint32_t Rank, uint32_t DiffCh)
Configure a differential channel rank in the regular conversion sequence.
__STATIC_INLINE uint32_t DDL_ADC16_IsEnabledIT_EOS(ADC16_TypeDef *ADCx)
Get state of interruption ADC group regular end of sequence conversions (0: interrupt disabled,...
__STATIC_INLINE uint32_t DDL_ADC16_IsEnabledIT_AWD3(ADC16_TypeDef *ADCx)
Get state of interruption Get ADC analog watchdog 3 (0: interrupt disabled, 1: interrupt enabled).
__STATIC_INLINE void DDL_ADC16_DisableIT_AWD2(ADC16_TypeDef *ADCx)
Disable interruption ADC analog watchdog 2.
__STATIC_INLINE uint32_t DDL_ADC16_IsEnabledIT_AWD2(ADC16_TypeDef *ADCx)
Get state of interruption Get ADC analog watchdog 2 (0: interrupt disabled, 1: interrupt enabled).
__STATIC_INLINE uint32_t DDL_ADC16_IsEnabledIT_OVR(ADC16_TypeDef *ADCx)
Get state of interruption ADC group regular overrun (0: interrupt disabled, 1: interrupt enabled).
__STATIC_INLINE uint32_t DDL_ADC16_IsEnabledIT_JEOS(ADC16_TypeDef *ADCx)
Get state of interruption ADC group injected end of sequence conversions (0: interrupt disabled,...
void DDL_ADC16_REG_StructInit(DDL_ADC16_REG_InitTypeDef *ADC_REG_InitStruct)
Set each DDL_ADC16_REG_InitTypeDef field to default value.
void DDL_ADC16_StructInit(DDL_ADC16_InitTypeDef *ADC_InitStruct)
Set each DDL_ADC16_InitTypeDef field to default value.
void DDL_ADC16_INJ_StructInit(DDL_ADC16_INJ_InitTypeDef *ADC_INJ_InitStruct)
Set each DDL_ADC16_INJ_InitTypeDef field to default value.
ErrorStatus DDL_ADC16_DeInit(ADC16_TypeDef *ADCx)
De-initialize registers of the selected ADC instance to their default reset values.
ErrorStatus DDL_ADC16_Init(ADC16_TypeDef *ADCx, DDL_ADC16_InitTypeDef *ADC_InitStruct)
Initialize some features of ADC instance.
ErrorStatus DDL_ADC16_INJ_Init(ADC16_TypeDef *ADCx, DDL_ADC16_INJ_InitTypeDef *ADC_INJ_InitStruct)
Initialize some features of ADC group injected.
ErrorStatus DDL_ADC16_REG_Init(ADC16_TypeDef *ADCx, DDL_ADC16_REG_InitTypeDef *ADC_REG_InitStruct)
Initialize some features of ADC group regular.
__STATIC_INLINE uint32_t DDL_ADC16_INJ_ReadConversionData32(ADC16_TypeDef *ADCx, uint32_t Rank)
Get ADC group injected conversion data, range fit for all ADC configurations: all ADC resolutions and...
__STATIC_INLINE void DDL_ADC16_INJ_StartConversion(ADC16_TypeDef *ADCx)
Start ADC group injected conversion.
__STATIC_INLINE void DDL_ADC16_INJ_StopConversion(ADC16_TypeDef *ADCx)
Stop ADC group injected conversion.
__STATIC_INLINE uint32_t DDL_ADC16_INJ_IsConversionOngoing(ADC16_TypeDef *ADCx)
Get ADC group injected conversion state.
__STATIC_INLINE uint32_t DDL_ADC16_INJ_IsStopConversionOngoing(ADC16_TypeDef *ADCx)
Get ADC group injected command of conversion stop state.
__STATIC_INLINE void DDL_ADC16_REG_StopConversion(ADC16_TypeDef *ADCx)
Stop ADC group regular conversion.
__STATIC_INLINE uint32_t DDL_ADC16_REG_IsStopConversionOngoing(ADC16_TypeDef *ADCx)
Get ADC group regular command of conversion stop state.
__STATIC_INLINE uint32_t DDL_ADC16_REG_ReadConversionData32(ADC16_TypeDef *ADCx)
Get ADC group regular conversion data, range fit for all ADC configurations: all ADC resolutions and ...
__STATIC_INLINE void DDL_ADC16_REG_StartConversion(ADC16_TypeDef *ADCx)
Start ADC group regular conversion.
__STATIC_INLINE uint32_t DDL_ADC16_REG_IsConversionOngoing(ADC16_TypeDef *ADCx)
Get ADC group regular conversion state.
__STATIC_INLINE void DDL_ADC16_Enable(ADC16_TypeDef *ADCx)
Enable the selected ADC instance.
__STATIC_INLINE void DDL_ADC16_Disable(ADC16_TypeDef *ADCx)
Disable the selected ADC instance.
__STATIC_INLINE void DDL_ADC16_SetVerfExternal(ADC16_TypeDef *ADCx)
Determine whether the current setting of VREF is internally generated or externally connected.
__STATIC_INLINE uint32_t DDL_ADC16_GetVerfStatus(ADC16_TypeDef *ADCx)
Get VREF Status.
__STATIC_INLINE void DDL_ADC16_SetVerfInternal(ADC16_TypeDef *ADCx)
Set VREF to be internally generated.
__STATIC_INLINE uint32_t DDL_ADC16_IsEnabled(ADC16_TypeDef *ADCx)
Get the selected ADC instance enable state.
#define ADC_SQR1_REGOFFSET
#define ADC16_CFGR_AWD1CH
#define ADC_TR1_HT1_BITOFFSET_POS
#define ADC_AWD_TRX_REGOFFSET_POS
#define ADC_REG_SQRX_REGOFFSET_MASK
#define ADC_AWD_TRX_BIT_HIGH_SHIFT4
#define ADC_AWD_TRX_BIT_HIGH_MASK
#define ADC_JDRX_REGOFFSET_POS
#define ADC_CHANNEL_ID_NUMBER_BITOFFSET_POS
#define ADC_AWD_CR12_REGOFFSETGAP_VAL
#define ADC_CHANNEL_ID_NUMBER_MASK_POSBIT0
#define ADC_AWD_TRX_REGOFFSET_MASK
#define ADC_AWD_CR23_CHANNEL_MASK
#define ADC_INJ_JDRX_REGOFFSET_MASK
#define ADC_CHANNEL_SMPx_BITOFFSET_MASK
#define ADC_AWD_CRX_REGOFFSET_MASK
#define ADC_AWD_CRX_REGOFFSET_POS
#define ADC_REG_RANK_ID_SQRX_MASK
#define ADC_AWD_CR_ALL_CHANNEL_MASK
#define ADC_SQRX_REGOFFSET_POS
#define ADC_INJ_RANK_ID_JSQR_MASK
#define ADC_CHANNEL_ID_NUMBER_MASK
#define ADC_AWD_CR12_REGOFFSETGAP_MASK
#define ADC_CHANNEL_SMPx_BITOFFSET_POS
#define ADC_SQR2_REGOFFSET
#define __ADC_PTR_REG_OFFSET(__REG__, __REG_OFFFSET__)
Driver macro reserved for internal use: set a pointer to a register from a register basis from which ...
#define __DDL_ADC16_CHANNEL_TO_DECIMAL_NB(__CHANNEL__)
Helper macro to get ADC channel number in decimal format from literals DDL_ADC16_CHANNEL_x.
Structure definition of some features of ADC group injected.
uint32_t SequencerDiscont
Structure definition of some features of ADC instance.
Structure definition of some features of ADC group regular.
uint32_t SequencerDiscont