Skip to content

Commit e9363ca

Browse files
authored
Merge pull request #80 from craigjb/gpio-reset-states
Set GPIO reset states per datasheet
2 parents 2999dcc + e06ef68 commit e9363ca

File tree

3 files changed

+105
-106
lines changed

3 files changed

+105
-106
lines changed

src/gpio.rs

Lines changed: 84 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ pub enum Speed {
5151
}
5252

5353
#[allow(dead_code)]
54-
pub(crate) enum AltMode {
54+
pub enum AltMode {
5555
AF0 = 0,
5656
AF1 = 1,
5757
AF2 = 2,
@@ -460,103 +460,103 @@ macro_rules! gpio {
460460
}
461461

462462
gpio!(GPIOA, gpioa, iopaen, PA, [
463-
PA0: (pa0, 0, Input<Floating>),
464-
PA1: (pa1, 1, Input<Floating>),
465-
PA2: (pa2, 2, Input<Floating>),
466-
PA3: (pa3, 3, Input<Floating>),
463+
PA0: (pa0, 0, Analog),
464+
PA1: (pa1, 1, Analog),
465+
PA2: (pa2, 2, Analog),
466+
PA3: (pa3, 3, Analog),
467467
PA4: (pa4, 4, Input<Floating>),
468-
PA5: (pa5, 5, Input<Floating>),
469-
PA6: (pa6, 6, Input<Floating>),
470-
PA7: (pa7, 7, Input<Floating>),
471-
PA8: (pa8, 8, Input<Floating>),
472-
PA9: (pa9, 9, Input<Floating>),
473-
PA10: (pa10, 10, Input<Floating>),
474-
PA11: (pa11, 11, Input<Floating>),
475-
PA12: (pa12, 12, Input<Floating>),
476-
PA13: (pa13, 13, Input<Floating>),
477-
PA14: (pa14, 14, Input<Floating>),
478-
PA15: (pa15, 15, Input<Floating>),
468+
PA5: (pa5, 5, Analog),
469+
PA6: (pa6, 6, Analog),
470+
PA7: (pa7, 7, Analog),
471+
PA8: (pa8, 8, Analog),
472+
PA9: (pa9, 9, Analog),
473+
PA10: (pa10, 10, Analog),
474+
PA11: (pa11, 11, Analog),
475+
PA12: (pa12, 12, Analog),
476+
PA13: (pa13, 13, AltMode),
477+
PA14: (pa14, 14, AltMode),
478+
PA15: (pa15, 15, Analog),
479479
]);
480480

481481
gpio!(GPIOB, gpiob, iopben, PB, [
482-
PB0: (pb0, 0, Input<Floating>),
483-
PB1: (pb1, 1, Input<Floating>),
484-
PB2: (pb2, 2, Input<Floating>),
485-
PB3: (pb3, 3, Input<Floating>),
486-
PB4: (pb4, 4, Input<Floating>),
487-
PB5: (pb5, 5, Input<Floating>),
488-
PB6: (pb6, 6, Input<Floating>),
489-
PB7: (pb7, 7, Input<Floating>),
490-
PB8: (pb8, 8, Input<Floating>),
491-
PB9: (pb9, 9, Input<Floating>),
492-
PB10: (pb10, 10, Input<Floating>),
493-
PB11: (pb11, 11, Input<Floating>),
494-
PB12: (pb12, 12, Input<Floating>),
495-
PB13: (pb13, 13, Input<Floating>),
496-
PB14: (pb14, 14, Input<Floating>),
497-
PB15: (pb15, 15, Input<Floating>),
482+
PB0: (pb0, 0, Analog),
483+
PB1: (pb1, 1, Analog),
484+
PB2: (pb2, 2, Analog),
485+
PB3: (pb3, 3, Analog),
486+
PB4: (pb4, 4, Analog),
487+
PB5: (pb5, 5, Analog),
488+
PB6: (pb6, 6, Analog),
489+
PB7: (pb7, 7, Analog),
490+
PB8: (pb8, 8, Analog),
491+
PB9: (pb9, 9, Analog),
492+
PB10: (pb10, 10, Analog),
493+
PB11: (pb11, 11, Analog),
494+
PB12: (pb12, 12, Analog),
495+
PB13: (pb13, 13, Analog),
496+
PB14: (pb14, 14, Analog),
497+
PB15: (pb15, 15, Analog),
498498
]);
499499

500500
gpio!(GPIOC, gpioc, iopcen, PC, [
501-
PC0: (pc0, 0, Input<Floating>),
502-
PC1: (pc1, 1, Input<Floating>),
503-
PC2: (pc2, 2, Input<Floating>),
504-
PC3: (pc3, 3, Input<Floating>),
505-
PC4: (pc4, 4, Input<Floating>),
506-
PC5: (pc5, 5, Input<Floating>),
507-
PC6: (pc6, 6, Input<Floating>),
508-
PC7: (pc7, 7, Input<Floating>),
509-
PC8: (pc8, 8, Input<Floating>),
510-
PC9: (pc9, 9, Input<Floating>),
511-
PC10: (pc10, 10, Input<Floating>),
512-
PC11: (pc11, 11, Input<Floating>),
513-
PC12: (pc12, 12, Input<Floating>),
514-
PC13: (pc13, 13, Input<Floating>),
515-
PC14: (pc14, 14, Input<Floating>),
516-
PC15: (pc15, 15, Input<Floating>),
501+
PC0: (pc0, 0, Analog),
502+
PC1: (pc1, 1, Analog),
503+
PC2: (pc2, 2, Analog),
504+
PC3: (pc3, 3, Analog),
505+
PC4: (pc4, 4, Analog),
506+
PC5: (pc5, 5, Analog),
507+
PC6: (pc6, 6, Analog),
508+
PC7: (pc7, 7, Analog),
509+
PC8: (pc8, 8, Analog),
510+
PC9: (pc9, 9, Analog),
511+
PC10: (pc10, 10, Analog),
512+
PC11: (pc11, 11, Analog),
513+
PC12: (pc12, 12, Analog),
514+
PC13: (pc13, 13, Analog),
515+
PC14: (pc14, 14, Analog),
516+
PC15: (pc15, 15, Analog),
517517
]);
518518

519519
gpio!(GPIOD, gpiod, iopden, PD, [
520-
PD0: (pd0, 0, Input<Floating>),
521-
PD1: (pd1, 1, Input<Floating>),
522-
PD2: (pd2, 2, Input<Floating>),
523-
PD3: (pd3, 3, Input<Floating>),
524-
PD4: (pd4, 4, Input<Floating>),
525-
PD5: (pd5, 5, Input<Floating>),
526-
PD6: (pd6, 6, Input<Floating>),
527-
PD7: (pd7, 7, Input<Floating>),
528-
PD8: (pd8, 8, Input<Floating>),
529-
PD9: (pd9, 9, Input<Floating>),
530-
PD10: (pd10, 10, Input<Floating>),
531-
PD11: (pd11, 11, Input<Floating>),
532-
PD12: (pd12, 12, Input<Floating>),
533-
PD13: (pd13, 13, Input<Floating>),
534-
PD14: (pd14, 14, Input<Floating>),
535-
PD15: (pd15, 15, Input<Floating>),
520+
PD0: (pd0, 0, Analog),
521+
PD1: (pd1, 1, Analog),
522+
PD2: (pd2, 2, Analog),
523+
PD3: (pd3, 3, Analog),
524+
PD4: (pd4, 4, Analog),
525+
PD5: (pd5, 5, Analog),
526+
PD6: (pd6, 6, Analog),
527+
PD7: (pd7, 7, Analog),
528+
PD8: (pd8, 8, Analog),
529+
PD9: (pd9, 9, Analog),
530+
PD10: (pd10, 10, Analog),
531+
PD11: (pd11, 11, Analog),
532+
PD12: (pd12, 12, Analog),
533+
PD13: (pd13, 13, Analog),
534+
PD14: (pd14, 14, Analog),
535+
PD15: (pd15, 15, Analog),
536536
]);
537537

538538
gpio!(GPIOE, gpioe, iopeen, PE, [
539-
PE0: (pe0, 0, Input<Floating>),
540-
PE1: (pe1, 1, Input<Floating>),
541-
PE2: (pe2, 2, Input<Floating>),
542-
PE3: (pe3, 3, Input<Floating>),
543-
PE4: (pe4, 4, Input<Floating>),
544-
PE5: (pe5, 5, Input<Floating>),
545-
PE6: (pe6, 6, Input<Floating>),
546-
PE7: (pe7, 7, Input<Floating>),
547-
PE8: (pe8, 8, Input<Floating>),
548-
PE9: (pe9, 9, Input<Floating>),
549-
PE10: (pe10, 10, Input<Floating>),
550-
PE11: (pe11, 11, Input<Floating>),
551-
PE12: (pe12, 12, Input<Floating>),
552-
PE13: (pe13, 13, Input<Floating>),
553-
PE14: (pe14, 14, Input<Floating>),
554-
PE15: (pe15, 15, Input<Floating>),
539+
PE0: (pe0, 0, Analog),
540+
PE1: (pe1, 1, Analog),
541+
PE2: (pe2, 2, Analog),
542+
PE3: (pe3, 3, Analog),
543+
PE4: (pe4, 4, Analog),
544+
PE5: (pe5, 5, Analog),
545+
PE6: (pe6, 6, Analog),
546+
PE7: (pe7, 7, Analog),
547+
PE8: (pe8, 8, Analog),
548+
PE9: (pe9, 9, Analog),
549+
PE10: (pe10, 10, Analog),
550+
PE11: (pe11, 11, Analog),
551+
PE12: (pe12, 12, Analog),
552+
PE13: (pe13, 13, Analog),
553+
PE14: (pe14, 14, Analog),
554+
PE15: (pe15, 15, Analog),
555555
]);
556556

557557
gpio!(GPIOH, gpioh, iophen, PH, [
558-
PH0: (ph0, 0, Input<Floating>),
559-
PH1: (ph1, 1, Input<Floating>),
560-
PH9: (ph9, 9, Input<Floating>),
561-
PH10: (ph10, 10, Input<Floating>),
558+
PH0: (ph0, 0, Analog),
559+
PH1: (ph1, 1, Analog),
560+
PH9: (ph9, 9, Analog),
561+
PH10: (ph10, 10, Analog),
562562
]);

src/spi.rs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use crate::gpio::gpioa::*;
22
#[cfg(any(feature = "stm32l0x2", feature = "stm32l0x3"))]
33
use crate::gpio::gpiob::*;
44

5-
use crate::gpio::{AltMode, Floating, Input};
5+
use crate::gpio::{AltMode, Analog};
66
use crate::hal;
77
use crate::pac::SPI1;
88
#[cfg(any(feature = "stm32l0x2", feature = "stm32l0x3"))]
@@ -107,20 +107,20 @@ pins! {
107107
SPI1:
108108
SCK: [
109109
[NoSck, None],
110-
[PB3<Input<Floating>>, AltMode::AF0],
111-
[PA5<Input<Floating>>, AltMode::AF0]
110+
[PB3<Analog>, AltMode::AF0],
111+
[PA5<Analog>, AltMode::AF0]
112112
]
113113
MISO: [
114114
[NoMiso, None],
115-
[PA6<Input<Floating>>, AltMode::AF0],
116-
[PA11<Input<Floating>>, AltMode::AF0],
117-
[PB4<Input<Floating>>, AltMode::AF0]
115+
[PA6<Analog>, AltMode::AF0],
116+
[PA11<Analog>, AltMode::AF0],
117+
[PB4<Analog>, AltMode::AF0]
118118
]
119119
MOSI: [
120120
[NoMosi, None],
121-
[PA7<Input<Floating>>, AltMode::AF0],
122-
[PA12<Input<Floating>>, AltMode::AF0],
123-
[PB5<Input<Floating>>, AltMode::AF0]
121+
[PA7<Analog>, AltMode::AF0],
122+
[PA12<Analog>, AltMode::AF0],
123+
[PB5<Analog>, AltMode::AF0]
124124
]
125125
}
126126

@@ -129,15 +129,15 @@ pins! {
129129
SPI2:
130130
SCK: [
131131
[NoSck, None],
132-
[PB13<Input<Floating>>, AltMode::AF0]
132+
[PB13<Analog>, AltMode::AF0]
133133
]
134134
MISO: [
135135
[NoMiso, None],
136-
[PB14<Input<Floating>>, AltMode::AF0]
136+
[PB14<Analog>, AltMode::AF0]
137137
]
138138
MOSI: [
139139
[NoMosi, None],
140-
[PB15<Input<Floating>>, AltMode::AF0]
140+
[PB15<Analog>, AltMode::AF0]
141141
]
142142
}
143143

@@ -146,15 +146,15 @@ pins! {
146146
SPI1:
147147
SCK: [
148148
[NoSck, None],
149-
[PA5<Input<Floating>>, AltMode::AF0]
149+
[PA5<Analog>, AltMode::AF0]
150150
]
151151
MISO: [
152152
[NoMiso, None],
153-
[PA6<Input<Floating>>, AltMode::AF0]
153+
[PA6<Analog>, AltMode::AF0]
154154
]
155155
MOSI: [
156156
[NoMosi, None],
157-
[PA7<Input<Floating>>, AltMode::AF0]
157+
[PA7<Analog>, AltMode::AF0]
158158
]
159159
}
160160

@@ -316,4 +316,4 @@ spi! {
316316
#[cfg(any(feature = "stm32l0x2", feature = "stm32l0x3"))]
317317
spi! {
318318
SPI2: (spi2, apb1enr, spi2en, apb1_clk),
319-
}
319+
}

src/usb.rs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,17 @@ use crate::{
1919
use stm32_usbd::UsbPeripheral;
2020

2121
use crate::gpio::gpioa::{PA11, PA12};
22-
use crate::gpio::{Floating, Input};
22+
use crate::gpio::Analog;
2323
pub use stm32_usbd::UsbBus;
2424

25-
2625
pub struct USB(());
2726

2827
impl USB {
2928
pub fn new(
30-
_: pac::USB,
31-
_dm: PA11<Input<Floating>>,
32-
_dp: PA12<Input<Floating>>,
33-
_: HSI48,
29+
_: pac::USB,
30+
_dm: PA11<Analog>,
31+
_dp: PA12<Analog>,
32+
_: HSI48
3433
)
3534
-> Self
3635
{

0 commit comments

Comments
 (0)