gd32f4pac 0.9.2

Device support crate for GD32F4 devices
Documentation
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
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
#[doc = "Register `APB1SPEN` reader"]
pub type R = crate::R<Apb1spenSpec>;
#[doc = "Register `APB1SPEN` writer"]
pub type W = crate::W<Apb1spenSpec>;
#[doc = "TIMER1 timer clock enable when sleep mode\n\nValue on reset: 1"]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum Timer1spen {
    #[doc = "0: Disable the selected module in sleep mode."]
    Disable = 0,
    #[doc = "1: Enable the selected module in sleep mode."]
    Enable = 1,
}
impl From<Timer1spen> for bool {
    #[inline(always)]
    fn from(variant: Timer1spen) -> Self {
        variant as u8 != 0
    }
}
#[doc = "Field `TIMER1SPEN` reader - TIMER1 timer clock enable when sleep mode"]
pub type Timer1spenR = crate::BitReader<Timer1spen>;
impl Timer1spenR {
    #[doc = "Get enumerated values variant"]
    #[inline(always)]
    pub const fn variant(&self) -> Timer1spen {
        match self.bits {
            false => Timer1spen::Disable,
            true => Timer1spen::Enable,
        }
    }
    #[doc = "Disable the selected module in sleep mode."]
    #[inline(always)]
    pub fn is_disable(&self) -> bool {
        *self == Timer1spen::Disable
    }
    #[doc = "Enable the selected module in sleep mode."]
    #[inline(always)]
    pub fn is_enable(&self) -> bool {
        *self == Timer1spen::Enable
    }
}
#[doc = "Field `TIMER1SPEN` writer - TIMER1 timer clock enable when sleep mode"]
pub type Timer1spenW<'a, REG> = crate::BitWriter<'a, REG, Timer1spen>;
impl<'a, REG> Timer1spenW<'a, REG>
where
    REG: crate::Writable + crate::RegisterSpec,
{
    #[doc = "Disable the selected module in sleep mode."]
    #[inline(always)]
    pub fn disable(self) -> &'a mut crate::W<REG> {
        self.variant(Timer1spen::Disable)
    }
    #[doc = "Enable the selected module in sleep mode."]
    #[inline(always)]
    pub fn enable(self) -> &'a mut crate::W<REG> {
        self.variant(Timer1spen::Enable)
    }
}
#[doc = "Field `TIMER2SPEN` reader - TIMER2 timer clock enable when sleep mode"]
pub use Timer1spenR as Timer2spenR;
#[doc = "Field `TIMER3SPEN` reader - TIMER3 timer clock enable when sleep mode"]
pub use Timer1spenR as Timer3spenR;
#[doc = "Field `TIMER4SPEN` reader - TIMER4 timer clock enable when sleep mode"]
pub use Timer1spenR as Timer4spenR;
#[doc = "Field `TIMER5SPEN` reader - TIMER5 timer clock enable when sleep mode"]
pub use Timer1spenR as Timer5spenR;
#[doc = "Field `TIMER6SPEN` reader - TIMER6 timer clock enable when sleep mode"]
pub use Timer1spenR as Timer6spenR;
#[doc = "Field `TIMER11SPEN` reader - TIMER11 timer clock enable when sleep mode"]
pub use Timer1spenR as Timer11spenR;
#[doc = "Field `TIMER12SPEN` reader - TIMER12 timer clock enable when sleep mode"]
pub use Timer1spenR as Timer12spenR;
#[doc = "Field `TIMER13SPEN` reader - TIMER13 timer clock enable when sleep mode"]
pub use Timer1spenR as Timer13spenR;
#[doc = "Field `WWDGTSPEN` reader - Window watchdog timer clock enable when sleep mode"]
pub use Timer1spenR as WwdgtspenR;
#[doc = "Field `SPI1SPEN` reader - SPI1 clock enable when sleep mode"]
pub use Timer1spenR as Spi1spenR;
#[doc = "Field `SPI2SPEN` reader - SPI2 clock enable when sleep mode"]
pub use Timer1spenR as Spi2spenR;
#[doc = "Field `USART1SPEN` reader - USART1 clock enable when sleep mode"]
pub use Timer1spenR as Usart1spenR;
#[doc = "Field `USART2SPEN` reader - USART2 clock enable when sleep mode"]
pub use Timer1spenR as Usart2spenR;
#[doc = "Field `UART3SPEN` reader - UART3 clock enable when sleep mode"]
pub use Timer1spenR as Uart3spenR;
#[doc = "Field `UART4SPEN` reader - UART4 clock enable when sleep mode"]
pub use Timer1spenR as Uart4spenR;
#[doc = "Field `I2C0SPEN` reader - I2C0 clock enable when sleep mode"]
pub use Timer1spenR as I2c0spenR;
#[doc = "Field `I2C1SPEN` reader - I2C1 clock enable when sleep mode"]
pub use Timer1spenR as I2c1spenR;
#[doc = "Field `I2C2SPEN` reader - I2C2 clock enable when sleep mode"]
pub use Timer1spenR as I2c2spenR;
#[doc = "Field `CAN0SPEN` reader - CAN0 clock enable when sleep mode"]
pub use Timer1spenR as Can0spenR;
#[doc = "Field `CAN1SPEN` reader - CAN1 clock enable when sleep mode"]
pub use Timer1spenR as Can1spenR;
#[doc = "Field `PMUSPEN` reader - Power control clock enable when sleep mode"]
pub use Timer1spenR as PmuspenR;
#[doc = "Field `DACSPEN` reader - DAC clock enable when sleep mode"]
pub use Timer1spenR as DacspenR;
#[doc = "Field `UART6SPEN` reader - UART6 clock enable when sleep mode"]
pub use Timer1spenR as Uart6spenR;
#[doc = "Field `UART7SPEN` reader - UART7 clock enable when sleep mode"]
pub use Timer1spenR as Uart7spenR;
#[doc = "Field `TIMER2SPEN` writer - TIMER2 timer clock enable when sleep mode"]
pub use Timer1spenW as Timer2spenW;
#[doc = "Field `TIMER3SPEN` writer - TIMER3 timer clock enable when sleep mode"]
pub use Timer1spenW as Timer3spenW;
#[doc = "Field `TIMER4SPEN` writer - TIMER4 timer clock enable when sleep mode"]
pub use Timer1spenW as Timer4spenW;
#[doc = "Field `TIMER5SPEN` writer - TIMER5 timer clock enable when sleep mode"]
pub use Timer1spenW as Timer5spenW;
#[doc = "Field `TIMER6SPEN` writer - TIMER6 timer clock enable when sleep mode"]
pub use Timer1spenW as Timer6spenW;
#[doc = "Field `TIMER11SPEN` writer - TIMER11 timer clock enable when sleep mode"]
pub use Timer1spenW as Timer11spenW;
#[doc = "Field `TIMER12SPEN` writer - TIMER12 timer clock enable when sleep mode"]
pub use Timer1spenW as Timer12spenW;
#[doc = "Field `TIMER13SPEN` writer - TIMER13 timer clock enable when sleep mode"]
pub use Timer1spenW as Timer13spenW;
#[doc = "Field `WWDGTSPEN` writer - Window watchdog timer clock enable when sleep mode"]
pub use Timer1spenW as WwdgtspenW;
#[doc = "Field `SPI1SPEN` writer - SPI1 clock enable when sleep mode"]
pub use Timer1spenW as Spi1spenW;
#[doc = "Field `SPI2SPEN` writer - SPI2 clock enable when sleep mode"]
pub use Timer1spenW as Spi2spenW;
#[doc = "Field `USART1SPEN` writer - USART1 clock enable when sleep mode"]
pub use Timer1spenW as Usart1spenW;
#[doc = "Field `USART2SPEN` writer - USART2 clock enable when sleep mode"]
pub use Timer1spenW as Usart2spenW;
#[doc = "Field `UART3SPEN` writer - UART3 clock enable when sleep mode"]
pub use Timer1spenW as Uart3spenW;
#[doc = "Field `UART4SPEN` writer - UART4 clock enable when sleep mode"]
pub use Timer1spenW as Uart4spenW;
#[doc = "Field `I2C0SPEN` writer - I2C0 clock enable when sleep mode"]
pub use Timer1spenW as I2c0spenW;
#[doc = "Field `I2C1SPEN` writer - I2C1 clock enable when sleep mode"]
pub use Timer1spenW as I2c1spenW;
#[doc = "Field `I2C2SPEN` writer - I2C2 clock enable when sleep mode"]
pub use Timer1spenW as I2c2spenW;
#[doc = "Field `CAN0SPEN` writer - CAN0 clock enable when sleep mode"]
pub use Timer1spenW as Can0spenW;
#[doc = "Field `CAN1SPEN` writer - CAN1 clock enable when sleep mode"]
pub use Timer1spenW as Can1spenW;
#[doc = "Field `PMUSPEN` writer - Power control clock enable when sleep mode"]
pub use Timer1spenW as PmuspenW;
#[doc = "Field `DACSPEN` writer - DAC clock enable when sleep mode"]
pub use Timer1spenW as DacspenW;
#[doc = "Field `UART6SPEN` writer - UART6 clock enable when sleep mode"]
pub use Timer1spenW as Uart6spenW;
#[doc = "Field `UART7SPEN` writer - UART7 clock enable when sleep mode"]
pub use Timer1spenW as Uart7spenW;
impl R {
    #[doc = "Bit 0 - TIMER1 timer clock enable when sleep mode"]
    #[inline(always)]
    pub fn timer1spen(&self) -> Timer1spenR {
        Timer1spenR::new((self.bits & 1) != 0)
    }
    #[doc = "Bit 1 - TIMER2 timer clock enable when sleep mode"]
    #[inline(always)]
    pub fn timer2spen(&self) -> Timer2spenR {
        Timer2spenR::new(((self.bits >> 1) & 1) != 0)
    }
    #[doc = "Bit 2 - TIMER3 timer clock enable when sleep mode"]
    #[inline(always)]
    pub fn timer3spen(&self) -> Timer3spenR {
        Timer3spenR::new(((self.bits >> 2) & 1) != 0)
    }
    #[doc = "Bit 3 - TIMER4 timer clock enable when sleep mode"]
    #[inline(always)]
    pub fn timer4spen(&self) -> Timer4spenR {
        Timer4spenR::new(((self.bits >> 3) & 1) != 0)
    }
    #[doc = "Bit 4 - TIMER5 timer clock enable when sleep mode"]
    #[inline(always)]
    pub fn timer5spen(&self) -> Timer5spenR {
        Timer5spenR::new(((self.bits >> 4) & 1) != 0)
    }
    #[doc = "Bit 5 - TIMER6 timer clock enable when sleep mode"]
    #[inline(always)]
    pub fn timer6spen(&self) -> Timer6spenR {
        Timer6spenR::new(((self.bits >> 5) & 1) != 0)
    }
    #[doc = "Bit 6 - TIMER11 timer clock enable when sleep mode"]
    #[inline(always)]
    pub fn timer11spen(&self) -> Timer11spenR {
        Timer11spenR::new(((self.bits >> 6) & 1) != 0)
    }
    #[doc = "Bit 7 - TIMER12 timer clock enable when sleep mode"]
    #[inline(always)]
    pub fn timer12spen(&self) -> Timer12spenR {
        Timer12spenR::new(((self.bits >> 7) & 1) != 0)
    }
    #[doc = "Bit 8 - TIMER13 timer clock enable when sleep mode"]
    #[inline(always)]
    pub fn timer13spen(&self) -> Timer13spenR {
        Timer13spenR::new(((self.bits >> 8) & 1) != 0)
    }
    #[doc = "Bit 11 - Window watchdog timer clock enable when sleep mode"]
    #[inline(always)]
    pub fn wwdgtspen(&self) -> WwdgtspenR {
        WwdgtspenR::new(((self.bits >> 11) & 1) != 0)
    }
    #[doc = "Bit 14 - SPI1 clock enable when sleep mode"]
    #[inline(always)]
    pub fn spi1spen(&self) -> Spi1spenR {
        Spi1spenR::new(((self.bits >> 14) & 1) != 0)
    }
    #[doc = "Bit 15 - SPI2 clock enable when sleep mode"]
    #[inline(always)]
    pub fn spi2spen(&self) -> Spi2spenR {
        Spi2spenR::new(((self.bits >> 15) & 1) != 0)
    }
    #[doc = "Bit 17 - USART1 clock enable when sleep mode"]
    #[inline(always)]
    pub fn usart1spen(&self) -> Usart1spenR {
        Usart1spenR::new(((self.bits >> 17) & 1) != 0)
    }
    #[doc = "Bit 18 - USART2 clock enable when sleep mode"]
    #[inline(always)]
    pub fn usart2spen(&self) -> Usart2spenR {
        Usart2spenR::new(((self.bits >> 18) & 1) != 0)
    }
    #[doc = "Bit 19 - UART3 clock enable when sleep mode"]
    #[inline(always)]
    pub fn uart3spen(&self) -> Uart3spenR {
        Uart3spenR::new(((self.bits >> 19) & 1) != 0)
    }
    #[doc = "Bit 20 - UART4 clock enable when sleep mode"]
    #[inline(always)]
    pub fn uart4spen(&self) -> Uart4spenR {
        Uart4spenR::new(((self.bits >> 20) & 1) != 0)
    }
    #[doc = "Bit 21 - I2C0 clock enable when sleep mode"]
    #[inline(always)]
    pub fn i2c0spen(&self) -> I2c0spenR {
        I2c0spenR::new(((self.bits >> 21) & 1) != 0)
    }
    #[doc = "Bit 22 - I2C1 clock enable when sleep mode"]
    #[inline(always)]
    pub fn i2c1spen(&self) -> I2c1spenR {
        I2c1spenR::new(((self.bits >> 22) & 1) != 0)
    }
    #[doc = "Bit 23 - I2C2 clock enable when sleep mode"]
    #[inline(always)]
    pub fn i2c2spen(&self) -> I2c2spenR {
        I2c2spenR::new(((self.bits >> 23) & 1) != 0)
    }
    #[doc = "Bit 25 - CAN0 clock enable when sleep mode"]
    #[inline(always)]
    pub fn can0spen(&self) -> Can0spenR {
        Can0spenR::new(((self.bits >> 25) & 1) != 0)
    }
    #[doc = "Bit 26 - CAN1 clock enable when sleep mode"]
    #[inline(always)]
    pub fn can1spen(&self) -> Can1spenR {
        Can1spenR::new(((self.bits >> 26) & 1) != 0)
    }
    #[doc = "Bit 28 - Power control clock enable when sleep mode"]
    #[inline(always)]
    pub fn pmuspen(&self) -> PmuspenR {
        PmuspenR::new(((self.bits >> 28) & 1) != 0)
    }
    #[doc = "Bit 29 - DAC clock enable when sleep mode"]
    #[inline(always)]
    pub fn dacspen(&self) -> DacspenR {
        DacspenR::new(((self.bits >> 29) & 1) != 0)
    }
    #[doc = "Bit 30 - UART6 clock enable when sleep mode"]
    #[inline(always)]
    pub fn uart6spen(&self) -> Uart6spenR {
        Uart6spenR::new(((self.bits >> 30) & 1) != 0)
    }
    #[doc = "Bit 31 - UART7 clock enable when sleep mode"]
    #[inline(always)]
    pub fn uart7spen(&self) -> Uart7spenR {
        Uart7spenR::new(((self.bits >> 31) & 1) != 0)
    }
}
impl W {
    #[doc = "Bit 0 - TIMER1 timer clock enable when sleep mode"]
    #[inline(always)]
    pub fn timer1spen(&mut self) -> Timer1spenW<Apb1spenSpec> {
        Timer1spenW::new(self, 0)
    }
    #[doc = "Bit 1 - TIMER2 timer clock enable when sleep mode"]
    #[inline(always)]
    pub fn timer2spen(&mut self) -> Timer2spenW<Apb1spenSpec> {
        Timer2spenW::new(self, 1)
    }
    #[doc = "Bit 2 - TIMER3 timer clock enable when sleep mode"]
    #[inline(always)]
    pub fn timer3spen(&mut self) -> Timer3spenW<Apb1spenSpec> {
        Timer3spenW::new(self, 2)
    }
    #[doc = "Bit 3 - TIMER4 timer clock enable when sleep mode"]
    #[inline(always)]
    pub fn timer4spen(&mut self) -> Timer4spenW<Apb1spenSpec> {
        Timer4spenW::new(self, 3)
    }
    #[doc = "Bit 4 - TIMER5 timer clock enable when sleep mode"]
    #[inline(always)]
    pub fn timer5spen(&mut self) -> Timer5spenW<Apb1spenSpec> {
        Timer5spenW::new(self, 4)
    }
    #[doc = "Bit 5 - TIMER6 timer clock enable when sleep mode"]
    #[inline(always)]
    pub fn timer6spen(&mut self) -> Timer6spenW<Apb1spenSpec> {
        Timer6spenW::new(self, 5)
    }
    #[doc = "Bit 6 - TIMER11 timer clock enable when sleep mode"]
    #[inline(always)]
    pub fn timer11spen(&mut self) -> Timer11spenW<Apb1spenSpec> {
        Timer11spenW::new(self, 6)
    }
    #[doc = "Bit 7 - TIMER12 timer clock enable when sleep mode"]
    #[inline(always)]
    pub fn timer12spen(&mut self) -> Timer12spenW<Apb1spenSpec> {
        Timer12spenW::new(self, 7)
    }
    #[doc = "Bit 8 - TIMER13 timer clock enable when sleep mode"]
    #[inline(always)]
    pub fn timer13spen(&mut self) -> Timer13spenW<Apb1spenSpec> {
        Timer13spenW::new(self, 8)
    }
    #[doc = "Bit 11 - Window watchdog timer clock enable when sleep mode"]
    #[inline(always)]
    pub fn wwdgtspen(&mut self) -> WwdgtspenW<Apb1spenSpec> {
        WwdgtspenW::new(self, 11)
    }
    #[doc = "Bit 14 - SPI1 clock enable when sleep mode"]
    #[inline(always)]
    pub fn spi1spen(&mut self) -> Spi1spenW<Apb1spenSpec> {
        Spi1spenW::new(self, 14)
    }
    #[doc = "Bit 15 - SPI2 clock enable when sleep mode"]
    #[inline(always)]
    pub fn spi2spen(&mut self) -> Spi2spenW<Apb1spenSpec> {
        Spi2spenW::new(self, 15)
    }
    #[doc = "Bit 17 - USART1 clock enable when sleep mode"]
    #[inline(always)]
    pub fn usart1spen(&mut self) -> Usart1spenW<Apb1spenSpec> {
        Usart1spenW::new(self, 17)
    }
    #[doc = "Bit 18 - USART2 clock enable when sleep mode"]
    #[inline(always)]
    pub fn usart2spen(&mut self) -> Usart2spenW<Apb1spenSpec> {
        Usart2spenW::new(self, 18)
    }
    #[doc = "Bit 19 - UART3 clock enable when sleep mode"]
    #[inline(always)]
    pub fn uart3spen(&mut self) -> Uart3spenW<Apb1spenSpec> {
        Uart3spenW::new(self, 19)
    }
    #[doc = "Bit 20 - UART4 clock enable when sleep mode"]
    #[inline(always)]
    pub fn uart4spen(&mut self) -> Uart4spenW<Apb1spenSpec> {
        Uart4spenW::new(self, 20)
    }
    #[doc = "Bit 21 - I2C0 clock enable when sleep mode"]
    #[inline(always)]
    pub fn i2c0spen(&mut self) -> I2c0spenW<Apb1spenSpec> {
        I2c0spenW::new(self, 21)
    }
    #[doc = "Bit 22 - I2C1 clock enable when sleep mode"]
    #[inline(always)]
    pub fn i2c1spen(&mut self) -> I2c1spenW<Apb1spenSpec> {
        I2c1spenW::new(self, 22)
    }
    #[doc = "Bit 23 - I2C2 clock enable when sleep mode"]
    #[inline(always)]
    pub fn i2c2spen(&mut self) -> I2c2spenW<Apb1spenSpec> {
        I2c2spenW::new(self, 23)
    }
    #[doc = "Bit 25 - CAN0 clock enable when sleep mode"]
    #[inline(always)]
    pub fn can0spen(&mut self) -> Can0spenW<Apb1spenSpec> {
        Can0spenW::new(self, 25)
    }
    #[doc = "Bit 26 - CAN1 clock enable when sleep mode"]
    #[inline(always)]
    pub fn can1spen(&mut self) -> Can1spenW<Apb1spenSpec> {
        Can1spenW::new(self, 26)
    }
    #[doc = "Bit 28 - Power control clock enable when sleep mode"]
    #[inline(always)]
    pub fn pmuspen(&mut self) -> PmuspenW<Apb1spenSpec> {
        PmuspenW::new(self, 28)
    }
    #[doc = "Bit 29 - DAC clock enable when sleep mode"]
    #[inline(always)]
    pub fn dacspen(&mut self) -> DacspenW<Apb1spenSpec> {
        DacspenW::new(self, 29)
    }
    #[doc = "Bit 30 - UART6 clock enable when sleep mode"]
    #[inline(always)]
    pub fn uart6spen(&mut self) -> Uart6spenW<Apb1spenSpec> {
        Uart6spenW::new(self, 30)
    }
    #[doc = "Bit 31 - UART7 clock enable when sleep mode"]
    #[inline(always)]
    pub fn uart7spen(&mut self) -> Uart7spenW<Apb1spenSpec> {
        Uart7spenW::new(self, 31)
    }
}
#[doc = "APB1 sleep mode clock enable register (RCU_APB1EN)\n\nYou can [`read`](crate::Reg::read) this register and get [`apb1spen::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`apb1spen::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Apb1spenSpec;
impl crate::RegisterSpec for Apb1spenSpec {
    type Ux = u32;
}
#[doc = "`read()` method returns [`apb1spen::R`](R) reader structure"]
impl crate::Readable for Apb1spenSpec {}
#[doc = "`write(|w| ..)` method takes [`apb1spen::W`](W) writer structure"]
impl crate::Writable for Apb1spenSpec {
    type Safety = crate::Unsafe;
}
#[doc = "`reset()` method sets APB1SPEN to value 0xf6fe_c9ff"]
impl crate::Resettable for Apb1spenSpec {
    const RESET_VALUE: u32 = 0xf6fe_c9ff;
}