1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
#[doc = r"Register block"]
#[repr(C)]
pub struct RegisterBlock {
    #[doc = "0x00 - ADC interrupt and status register"]
    pub isr: ISR,
    #[doc = "0x04 - ADC interrupt enable register"]
    pub ier: IER,
    #[doc = "0x08 - ADC control register"]
    pub cr: CR,
    #[doc = "0x0c - ADC configuration register 1"]
    pub cfgr: CFGR,
    #[doc = "0x10 - ADC configuration register 2"]
    pub cfgr2: CFGR2,
    #[doc = "0x14 - ADC sampling time register 1"]
    pub smpr1: SMPR1,
    #[doc = "0x18 - ADC sampling time register 2"]
    pub smpr2: SMPR2,
    #[doc = "0x1c - ADC pre channel selection register"]
    pub pcsel: PCSEL,
    #[doc = "0x20 - ADC analog watchdog 1 threshold register"]
    pub ltr1: LTR1,
    #[doc = "0x24 - ADC analog watchdog 2 threshold register"]
    pub lhtr1: LHTR1,
    _reserved10: [u8; 8usize],
    #[doc = "0x30 - ADC group regular sequencer ranks register 1"]
    pub sqr1: SQR1,
    #[doc = "0x34 - ADC group regular sequencer ranks register 2"]
    pub sqr2: SQR2,
    #[doc = "0x38 - ADC group regular sequencer ranks register 3"]
    pub sqr3: SQR3,
    #[doc = "0x3c - ADC group regular sequencer ranks register 4"]
    pub sqr4: SQR4,
    #[doc = "0x40 - ADC group regular conversion data register"]
    pub dr: DR,
    _reserved15: [u8; 8usize],
    #[doc = "0x4c - ADC group injected sequencer register"]
    pub jsqr: JSQR,
    _reserved16: [u8; 16usize],
    #[doc = "0x60 - ADC offset number 1 register"]
    pub ofr1: OFR1,
    #[doc = "0x64 - ADC offset number 2 register"]
    pub ofr2: OFR2,
    #[doc = "0x68 - ADC offset number 3 register"]
    pub ofr3: OFR3,
    #[doc = "0x6c - ADC offset number 4 register"]
    pub ofr4: OFR4,
    _reserved20: [u8; 16usize],
    #[doc = "0x80 - ADC group injected sequencer rank 1 register"]
    pub jdr1: JDR1,
    #[doc = "0x84 - ADC group injected sequencer rank 2 register"]
    pub jdr2: JDR2,
    #[doc = "0x88 - ADC group injected sequencer rank 3 register"]
    pub jdr3: JDR3,
    #[doc = "0x8c - ADC group injected sequencer rank 4 register"]
    pub jdr4: JDR4,
    _reserved24: [u8; 16usize],
    #[doc = "0xa0 - ADC analog watchdog 2 configuration register"]
    pub awd2cr: AWD2CR,
    #[doc = "0xa4 - ADC analog watchdog 3 configuration register"]
    pub awd3cr: AWD3CR,
    _reserved26: [u8; 8usize],
    #[doc = "0xb0 - ADC watchdog lower threshold register 2"]
    pub ltr2: LTR2,
    #[doc = "0xb4 - ADC watchdog higher threshold register 2"]
    pub htr2: HTR2,
    #[doc = "0xb8 - ADC watchdog lower threshold register 3"]
    pub ltr3: LTR3,
    #[doc = "0xbc - ADC watchdog higher threshold register 3"]
    pub htr3: HTR3,
    #[doc = "0xc0 - ADC channel differential or single-ended mode selection register"]
    pub difsel: DIFSEL,
    #[doc = "0xc4 - ADC calibration factors register"]
    pub calfact: CALFACT,
    #[doc = "0xc8 - ADC Calibration Factor register 2"]
    pub calfact2: CALFACT2,
}
#[doc = "ADC interrupt and status register"]
pub struct ISR {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC interrupt and status register"]
pub mod isr;
#[doc = "ADC interrupt enable register"]
pub struct IER {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC interrupt enable register"]
pub mod ier;
#[doc = "ADC control register"]
pub struct CR {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC control register"]
pub mod cr;
#[doc = "ADC configuration register 1"]
pub struct CFGR {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC configuration register 1"]
pub mod cfgr;
#[doc = "ADC configuration register 2"]
pub struct CFGR2 {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC configuration register 2"]
pub mod cfgr2;
#[doc = "ADC sampling time register 1"]
pub struct SMPR1 {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC sampling time register 1"]
pub mod smpr1;
#[doc = "ADC sampling time register 2"]
pub struct SMPR2 {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC sampling time register 2"]
pub mod smpr2;
#[doc = "ADC analog watchdog 1 threshold register"]
pub struct LTR1 {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC analog watchdog 1 threshold register"]
pub mod ltr1;
#[doc = "ADC analog watchdog 2 threshold register"]
pub struct LHTR1 {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC analog watchdog 2 threshold register"]
pub mod lhtr1;
#[doc = "ADC group regular sequencer ranks register 1"]
pub struct SQR1 {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC group regular sequencer ranks register 1"]
pub mod sqr1;
#[doc = "ADC group regular sequencer ranks register 2"]
pub struct SQR2 {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC group regular sequencer ranks register 2"]
pub mod sqr2;
#[doc = "ADC group regular sequencer ranks register 3"]
pub struct SQR3 {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC group regular sequencer ranks register 3"]
pub mod sqr3;
#[doc = "ADC group regular sequencer ranks register 4"]
pub struct SQR4 {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC group regular sequencer ranks register 4"]
pub mod sqr4;
#[doc = "ADC group regular conversion data register"]
pub struct DR {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC group regular conversion data register"]
pub mod dr;
#[doc = "ADC group injected sequencer register"]
pub struct JSQR {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC group injected sequencer register"]
pub mod jsqr;
#[doc = "ADC offset number 1 register"]
pub struct OFR1 {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC offset number 1 register"]
pub mod ofr1;
#[doc = "ADC offset number 2 register"]
pub struct OFR2 {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC offset number 2 register"]
pub mod ofr2;
#[doc = "ADC offset number 3 register"]
pub struct OFR3 {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC offset number 3 register"]
pub mod ofr3;
#[doc = "ADC offset number 4 register"]
pub struct OFR4 {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC offset number 4 register"]
pub mod ofr4;
#[doc = "ADC group injected sequencer rank 1 register"]
pub struct JDR1 {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC group injected sequencer rank 1 register"]
pub mod jdr1;
#[doc = "ADC group injected sequencer rank 2 register"]
pub struct JDR2 {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC group injected sequencer rank 2 register"]
pub mod jdr2;
#[doc = "ADC group injected sequencer rank 3 register"]
pub struct JDR3 {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC group injected sequencer rank 3 register"]
pub mod jdr3;
#[doc = "ADC group injected sequencer rank 4 register"]
pub struct JDR4 {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC group injected sequencer rank 4 register"]
pub mod jdr4;
#[doc = "ADC analog watchdog 2 configuration register"]
pub struct AWD2CR {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC analog watchdog 2 configuration register"]
pub mod awd2cr;
#[doc = "ADC analog watchdog 3 configuration register"]
pub struct AWD3CR {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC analog watchdog 3 configuration register"]
pub mod awd3cr;
#[doc = "ADC channel differential or single-ended mode selection register"]
pub struct DIFSEL {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC channel differential or single-ended mode selection register"]
pub mod difsel;
#[doc = "ADC calibration factors register"]
pub struct CALFACT {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC calibration factors register"]
pub mod calfact;
#[doc = "ADC pre channel selection register"]
pub struct PCSEL {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC pre channel selection register"]
pub mod pcsel;
#[doc = "ADC watchdog lower threshold register 2"]
pub struct LTR2 {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC watchdog lower threshold register 2"]
pub mod ltr2;
#[doc = "ADC watchdog higher threshold register 2"]
pub struct HTR2 {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC watchdog higher threshold register 2"]
pub mod htr2;
#[doc = "ADC watchdog lower threshold register 3"]
pub struct LTR3 {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC watchdog lower threshold register 3"]
pub mod ltr3;
#[doc = "ADC watchdog higher threshold register 3"]
pub struct HTR3 {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC watchdog higher threshold register 3"]
pub mod htr3;
#[doc = "ADC Calibration Factor register 2"]
pub struct CALFACT2 {
    register: vcell::VolatileCell<u32>,
}
#[doc = "ADC Calibration Factor register 2"]
pub mod calfact2;