Skip to content

Commit a7ec26d

Browse files
authored
fix incorrect default pin modes (#285)
1 parent f97712b commit a7ec26d

File tree

1 file changed

+115
-123
lines changed

1 file changed

+115
-123
lines changed

src/gpio.rs

Lines changed: 115 additions & 123 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ pub struct OpenDrain;
4949
/// Analog mode (type state)
5050
pub struct Analog;
5151

52+
pub type Debugger = Alternate<PushPull, 0>;
53+
5254
/// GPIO Pin speed selection
5355
pub enum Speed {
5456
Low = 0,
@@ -240,17 +242,7 @@ macro_rules! gpio {
240242
use crate::stm32::$GPIOX;
241243

242244
use crate::rcc::{AHB2, Enable, Reset};
243-
use super::{
244-
Afr,
245-
Pin,
246-
Floating, GpioExt, Input,
247-
H8,
248-
L8,
249-
MODER,
250-
OTYPER,
251-
OSPEEDR,
252-
PUPDR,
253-
};
245+
use super::{Afr, Analog, GpioExt, Pin, H8, L8, MODER, OTYPER, OSPEEDR, PUPDR};
254246

255247
/// GPIO parts
256248
pub struct Parts {
@@ -615,98 +607,98 @@ af!(H8, AFRH, afrh);
615607
af!(L8, AFRL, afrl);
616608

617609
gpio!(GPIOA, gpioa, PAx, 'A', 0, [
618-
PA0: (pa0, 0, Input<Floating>, L8, exticr1),
619-
PA1: (pa1, 1, Input<Floating>, L8, exticr1),
620-
PA2: (pa2, 2, Input<Floating>, L8, exticr1),
621-
PA3: (pa3, 3, Input<Floating>, L8, exticr1),
622-
PA4: (pa4, 4, Input<Floating>, L8, exticr2),
623-
PA5: (pa5, 5, Input<Floating>, L8, exticr2),
624-
PA6: (pa6, 6, Input<Floating>, L8, exticr2),
625-
PA7: (pa7, 7, Input<Floating>, L8, exticr2),
626-
PA8: (pa8, 8, Input<Floating>, H8, exticr3),
627-
PA9: (pa9, 9, Input<Floating>, H8, exticr3),
628-
PA10: (pa10, 10, Input<Floating>, H8, exticr3),
629-
PA11: (pa11, 11, Input<Floating>, H8, exticr3),
630-
PA12: (pa12, 12, Input<Floating>, H8, exticr4),
631-
PA13: (pa13, 13, Input<Floating>, H8, exticr4),
632-
PA14: (pa14, 14, Input<Floating>, H8, exticr4),
633-
PA15: (pa15, 15, Input<Floating>, H8, exticr4),
610+
PA0: (pa0, 0, Analog, L8, exticr1),
611+
PA1: (pa1, 1, Analog, L8, exticr1),
612+
PA2: (pa2, 2, Analog, L8, exticr1),
613+
PA3: (pa3, 3, Analog, L8, exticr1),
614+
PA4: (pa4, 4, Analog, L8, exticr2),
615+
PA5: (pa5, 5, Analog, L8, exticr2),
616+
PA6: (pa6, 6, Analog, L8, exticr2),
617+
PA7: (pa7, 7, Analog, L8, exticr2),
618+
PA8: (pa8, 8, Analog, H8, exticr3),
619+
PA9: (pa9, 9, Analog, H8, exticr3),
620+
PA10: (pa10, 10, Analog, H8, exticr3),
621+
PA11: (pa11, 11, Analog, H8, exticr3),
622+
PA12: (pa12, 12, Analog, H8, exticr4),
623+
PA13: (pa13, 13, super::Debugger, H8, exticr4), // SWDIO, PullUp VeryHigh speed
624+
PA14: (pa14, 14, super::Debugger, H8, exticr4), // SWCLK, PullDown
625+
PA15: (pa15, 15, super::Debugger, H8, exticr4), // JTDI, PullUp
634626
]);
635627

636628
gpio!(GPIOB, gpiob, PBx, 'B', 1, [
637-
PB0: (pb0, 0, Input<Floating>, L8, exticr1),
638-
PB1: (pb1, 1, Input<Floating>, L8, exticr1),
639-
PB2: (pb2, 2, Input<Floating>, L8, exticr1),
640-
PB3: (pb3, 3, Input<Floating>, L8, exticr1),
641-
PB4: (pb4, 4, Input<Floating>, L8, exticr2),
642-
PB5: (pb5, 5, Input<Floating>, L8, exticr2),
643-
PB6: (pb6, 6, Input<Floating>, L8, exticr2),
644-
PB7: (pb7, 7, Input<Floating>, L8, exticr2),
645-
PB8: (pb8, 8, Input<Floating>, H8, exticr3),
646-
PB9: (pb9, 9, Input<Floating>, H8, exticr3),
647-
PB10: (pb10, 10, Input<Floating>, H8, exticr3),
648-
PB11: (pb11, 11, Input<Floating>, H8, exticr3),
649-
PB12: (pb12, 12, Input<Floating>, H8, exticr4),
650-
PB13: (pb13, 13, Input<Floating>, H8, exticr4),
651-
PB14: (pb14, 14, Input<Floating>, H8, exticr4),
652-
PB15: (pb15, 15, Input<Floating>, H8, exticr4),
629+
PB0: (pb0, 0, Analog, L8, exticr1),
630+
PB1: (pb1, 1, Analog, L8, exticr1),
631+
PB2: (pb2, 2, Analog, L8, exticr1),
632+
PB3: (pb3, 3, super::Debugger, L8, exticr1), // SWO
633+
PB4: (pb4, 4, super::Debugger, L8, exticr2), // JTRST, PullUp
634+
PB5: (pb5, 5, Analog, L8, exticr2),
635+
PB6: (pb6, 6, Analog, L8, exticr2),
636+
PB7: (pb7, 7, Analog, L8, exticr2),
637+
PB8: (pb8, 8, Analog, H8, exticr3),
638+
PB9: (pb9, 9, Analog, H8, exticr3),
639+
PB10: (pb10, 10, Analog, H8, exticr3),
640+
PB11: (pb11, 11, Analog, H8, exticr3),
641+
PB12: (pb12, 12, Analog, H8, exticr4),
642+
PB13: (pb13, 13, Analog, H8, exticr4),
643+
PB14: (pb14, 14, Analog, H8, exticr4),
644+
PB15: (pb15, 15, Analog, H8, exticr4),
653645
]);
654646

655647
gpio!(GPIOC, gpioc, PCx, 'C', 2, [
656-
PC0: (pc0, 0, Input<Floating>, L8, exticr1),
657-
PC1: (pc1, 1, Input<Floating>, L8, exticr1),
658-
PC2: (pc2, 2, Input<Floating>, L8, exticr1),
659-
PC3: (pc3, 3, Input<Floating>, L8, exticr1),
660-
PC4: (pc4, 4, Input<Floating>, L8, exticr2),
661-
PC5: (pc5, 5, Input<Floating>, L8, exticr2),
662-
PC6: (pc6, 6, Input<Floating>, L8, exticr2),
663-
PC7: (pc7, 7, Input<Floating>, L8, exticr2),
664-
PC8: (pc8, 8, Input<Floating>, H8, exticr3),
665-
PC9: (pc9, 9, Input<Floating>, H8, exticr3),
666-
PC10: (pc10, 10, Input<Floating>, H8, exticr3),
667-
PC11: (pc11, 11, Input<Floating>, H8, exticr3),
668-
PC12: (pc12, 12, Input<Floating>, H8, exticr4),
669-
PC13: (pc13, 13, Input<Floating>, H8, exticr4),
670-
PC14: (pc14, 14, Input<Floating>, H8, exticr4),
671-
PC15: (pc15, 15, Input<Floating>, H8, exticr4),
648+
PC0: (pc0, 0, Analog, L8, exticr1),
649+
PC1: (pc1, 1, Analog, L8, exticr1),
650+
PC2: (pc2, 2, Analog, L8, exticr1),
651+
PC3: (pc3, 3, Analog, L8, exticr1),
652+
PC4: (pc4, 4, Analog, L8, exticr2),
653+
PC5: (pc5, 5, Analog, L8, exticr2),
654+
PC6: (pc6, 6, Analog, L8, exticr2),
655+
PC7: (pc7, 7, Analog, L8, exticr2),
656+
PC8: (pc8, 8, Analog, H8, exticr3),
657+
PC9: (pc9, 9, Analog, H8, exticr3),
658+
PC10: (pc10, 10, Analog, H8, exticr3),
659+
PC11: (pc11, 11, Analog, H8, exticr3),
660+
PC12: (pc12, 12, Analog, H8, exticr4),
661+
PC13: (pc13, 13, Analog, H8, exticr4),
662+
PC14: (pc14, 14, Analog, H8, exticr4),
663+
PC15: (pc15, 15, Analog, H8, exticr4),
672664
]);
673665

674666
gpio!(GPIOD, gpiod, PDx, 'D', 3, [
675-
PD0: (pd0, 0, Input<Floating>, L8, exticr1),
676-
PD1: (pd1, 1, Input<Floating>, L8, exticr1),
677-
PD2: (pd2, 2, Input<Floating>, L8, exticr1),
678-
PD3: (pd3, 3, Input<Floating>, L8, exticr1),
679-
PD4: (pd4, 4, Input<Floating>, L8, exticr2),
680-
PD5: (pd5, 5, Input<Floating>, L8, exticr2),
681-
PD6: (pd6, 6, Input<Floating>, L8, exticr2),
682-
PD7: (pd7, 7, Input<Floating>, L8, exticr2),
683-
PD8: (pd8, 8, Input<Floating>, H8, exticr3),
684-
PD9: (pd9, 9, Input<Floating>, H8, exticr3),
685-
PD10: (pd10, 10, Input<Floating>, H8, exticr3),
686-
PD11: (pd11, 11, Input<Floating>, H8, exticr3),
687-
PD12: (pd12, 12, Input<Floating>, H8, exticr4),
688-
PD13: (pd13, 13, Input<Floating>, H8, exticr4),
689-
PD14: (pd14, 14, Input<Floating>, H8, exticr4),
690-
PD15: (pd15, 15, Input<Floating>, H8, exticr4),
667+
PD0: (pd0, 0, Analog, L8, exticr1),
668+
PD1: (pd1, 1, Analog, L8, exticr1),
669+
PD2: (pd2, 2, Analog, L8, exticr1),
670+
PD3: (pd3, 3, Analog, L8, exticr1),
671+
PD4: (pd4, 4, Analog, L8, exticr2),
672+
PD5: (pd5, 5, Analog, L8, exticr2),
673+
PD6: (pd6, 6, Analog, L8, exticr2),
674+
PD7: (pd7, 7, Analog, L8, exticr2),
675+
PD8: (pd8, 8, Analog, H8, exticr3),
676+
PD9: (pd9, 9, Analog, H8, exticr3),
677+
PD10: (pd10, 10, Analog, H8, exticr3),
678+
PD11: (pd11, 11, Analog, H8, exticr3),
679+
PD12: (pd12, 12, Analog, H8, exticr4),
680+
PD13: (pd13, 13, Analog, H8, exticr4),
681+
PD14: (pd14, 14, Analog, H8, exticr4),
682+
PD15: (pd15, 15, Analog, H8, exticr4),
691683
]);
692684

693685
gpio!(GPIOE, gpioe, PEx, 'E', 4, [
694-
PE0: (pe0, 0, Input<Floating>, L8, exticr1),
695-
PE1: (pe1, 1, Input<Floating>, L8, exticr1),
696-
PE2: (pe2, 2, Input<Floating>, L8, exticr1),
697-
PE3: (pe3, 3, Input<Floating>, L8, exticr1),
698-
PE4: (pe4, 4, Input<Floating>, L8, exticr2),
699-
PE5: (pe5, 5, Input<Floating>, L8, exticr2),
700-
PE6: (pe6, 6, Input<Floating>, L8, exticr2),
701-
PE7: (pe7, 7, Input<Floating>, L8, exticr2),
702-
PE8: (pe8, 8, Input<Floating>, H8, exticr3),
703-
PE9: (pe9, 9, Input<Floating>, H8, exticr3),
704-
PE10: (pe10, 10, Input<Floating>, H8, exticr3),
705-
PE11: (pe11, 11, Input<Floating>, H8, exticr3),
706-
PE12: (pe12, 12, Input<Floating>, H8, exticr4),
707-
PE13: (pe13, 13, Input<Floating>, H8, exticr4),
708-
PE14: (pe14, 14, Input<Floating>, H8, exticr4),
709-
PE15: (pe15, 15, Input<Floating>, H8, exticr4),
686+
PE0: (pe0, 0, Analog, L8, exticr1),
687+
PE1: (pe1, 1, Analog, L8, exticr1),
688+
PE2: (pe2, 2, Analog, L8, exticr1),
689+
PE3: (pe3, 3, Analog, L8, exticr1),
690+
PE4: (pe4, 4, Analog, L8, exticr2),
691+
PE5: (pe5, 5, Analog, L8, exticr2),
692+
PE6: (pe6, 6, Analog, L8, exticr2),
693+
PE7: (pe7, 7, Analog, L8, exticr2),
694+
PE8: (pe8, 8, Analog, H8, exticr3),
695+
PE9: (pe9, 9, Analog, H8, exticr3),
696+
PE10: (pe10, 10, Analog, H8, exticr3),
697+
PE11: (pe11, 11, Analog, H8, exticr3),
698+
PE12: (pe12, 12, Analog, H8, exticr4),
699+
PE13: (pe13, 13, Analog, H8, exticr4),
700+
PE14: (pe14, 14, Analog, H8, exticr4),
701+
PE15: (pe15, 15, Analog, H8, exticr4),
710702
]);
711703

712704
#[cfg(any(
@@ -727,22 +719,22 @@ gpio!(GPIOE, gpioe, PEx, 'E', 4, [
727719
feature = "stm32l4s9",
728720
))]
729721
gpio!(GPIOF, gpiof, PFx, 'F', 5, [
730-
PF0: (pf0, 0, Input<Floating>, L8, exticr1),
731-
PF1: (pf1, 1, Input<Floating>, L8, exticr1),
732-
PF2: (pf2, 2, Input<Floating>, L8, exticr1),
733-
PF3: (pf3, 3, Input<Floating>, L8, exticr1),
734-
PF4: (pf4, 4, Input<Floating>, L8, exticr2),
735-
PF5: (pf5, 5, Input<Floating>, L8, exticr2),
736-
PF6: (pf6, 6, Input<Floating>, L8, exticr2),
737-
PF7: (pf7, 7, Input<Floating>, L8, exticr2),
738-
PF8: (pf8, 8, Input<Floating>, H8, exticr3),
739-
PF9: (pf9, 9, Input<Floating>, H8, exticr3),
740-
PF10: (pf10, 10, Input<Floating>, H8, exticr3),
741-
PF11: (pf11, 11, Input<Floating>, H8, exticr3),
742-
PF12: (pf12, 12, Input<Floating>, H8, exticr4),
743-
PF13: (pf13, 13, Input<Floating>, H8, exticr4),
744-
PF14: (pf14, 14, Input<Floating>, H8, exticr4),
745-
PF15: (pf15, 15, Input<Floating>, H8, exticr4),
722+
PF0: (pf0, 0, Analog, L8, exticr1),
723+
PF1: (pf1, 1, Analog, L8, exticr1),
724+
PF2: (pf2, 2, Analog, L8, exticr1),
725+
PF3: (pf3, 3, Analog, L8, exticr1),
726+
PF4: (pf4, 4, Analog, L8, exticr2),
727+
PF5: (pf5, 5, Analog, L8, exticr2),
728+
PF6: (pf6, 6, Analog, L8, exticr2),
729+
PF7: (pf7, 7, Analog, L8, exticr2),
730+
PF8: (pf8, 8, Analog, H8, exticr3),
731+
PF9: (pf9, 9, Analog, H8, exticr3),
732+
PF10: (pf10, 10, Analog, H8, exticr3),
733+
PF11: (pf11, 11, Analog, H8, exticr3),
734+
PF12: (pf12, 12, Analog, H8, exticr4),
735+
PF13: (pf13, 13, Analog, H8, exticr4),
736+
PF14: (pf14, 14, Analog, H8, exticr4),
737+
PF15: (pf15, 15, Analog, H8, exticr4),
746738
]);
747739
#[cfg(any(
748740
// feature = "stm32l471", // missing PAC support for Port G
@@ -762,22 +754,22 @@ gpio!(GPIOF, gpiof, PFx, 'F', 5, [
762754
feature = "stm32l4s9",
763755
))]
764756
gpio!(GPIOG, gpiog, PGx, 'G', 6, [
765-
PG0: (pg0, 0, Input<Floating>, L8, exticr1),
766-
PG1: (pg1, 1, Input<Floating>, L8, exticr1),
767-
PG2: (pg2, 2, Input<Floating>, L8, exticr1),
768-
PG3: (pg3, 3, Input<Floating>, L8, exticr1),
769-
PG4: (pg4, 4, Input<Floating>, L8, exticr2),
770-
PG5: (pg5, 5, Input<Floating>, L8, exticr2),
771-
PG6: (pg6, 6, Input<Floating>, L8, exticr2),
772-
PG7: (pg7, 7, Input<Floating>, L8, exticr2),
773-
PG8: (pg8, 8, Input<Floating>, H8, exticr3),
774-
PG9: (pg9, 9, Input<Floating>, H8, exticr3),
775-
PG10: (pg10, 10, Input<Floating>, H8, exticr3),
776-
PG11: (pg11, 11, Input<Floating>, H8, exticr3),
777-
PG12: (pg12, 12, Input<Floating>, H8, exticr4),
778-
PG13: (pg13, 13, Input<Floating>, H8, exticr4),
779-
PG14: (pg14, 14, Input<Floating>, H8, exticr4),
780-
PG15: (pg15, 15, Input<Floating>, H8, exticr4),
757+
PG0: (pg0, 0, Analog, L8, exticr1),
758+
PG1: (pg1, 1, Analog, L8, exticr1),
759+
PG2: (pg2, 2, Analog, L8, exticr1),
760+
PG3: (pg3, 3, Analog, L8, exticr1),
761+
PG4: (pg4, 4, Analog, L8, exticr2),
762+
PG5: (pg5, 5, Analog, L8, exticr2),
763+
PG6: (pg6, 6, Analog, L8, exticr2),
764+
PG7: (pg7, 7, Analog, L8, exticr2),
765+
PG8: (pg8, 8, Analog, H8, exticr3),
766+
PG9: (pg9, 9, Analog, H8, exticr3),
767+
PG10: (pg10, 10, Analog, H8, exticr3),
768+
PG11: (pg11, 11, Analog, H8, exticr3),
769+
PG12: (pg12, 12, Analog, H8, exticr4),
770+
PG13: (pg13, 13, Analog, H8, exticr4),
771+
PG14: (pg14, 14, Analog, H8, exticr4),
772+
PG15: (pg15, 15, Analog, H8, exticr4),
781773
]);
782774

783775
struct Gpio<const P: char>;

0 commit comments

Comments
 (0)