aboutsummaryrefslogtreecommitdiff
path: root/embassy-stm32
diff options
context:
space:
mode:
authorJoël Schulz-Ansres <[email protected]>2024-05-22 23:44:34 +0200
committerJoël Schulz-Ansres <[email protected]>2024-05-22 23:44:34 +0200
commit2f7bba4668006ed3124adf6c94efeb2169d79a9c (patch)
treef2e6eeb8ef9194f92adbffba5b04b0819860bacf /embassy-stm32
parentcc6998be30856d05a4a6a975f35fd0e5df2ea807 (diff)
Use ODR register for Pull::Up or Down
Diffstat (limited to 'embassy-stm32')
-rw-r--r--embassy-stm32/src/gpio.rs22
1 files changed, 12 insertions, 10 deletions
diff --git a/embassy-stm32/src/gpio.rs b/embassy-stm32/src/gpio.rs
index 7de223455..3fb7fda57 100644
--- a/embassy-stm32/src/gpio.rs
+++ b/embassy-stm32/src/gpio.rs
@@ -689,17 +689,19 @@ pub(crate) trait SealedPin {
689 #[cfg(gpio_v1)] 689 #[cfg(gpio_v1)]
690 { 690 {
691 let crlh = if n < 8 { 0 } else { 1 }; 691 let crlh = if n < 8 { 0 } else { 1 };
692 match r.cr(crlh).cnf(n % 8) { 692 match r.cr(crlh).read().mode(n % 8) {
693 vals::CnfIn::FLOATING => Pull::None, 693 vals::Mode::INPUT => {
694 _ => { 694 match r.cr(crlh).read().cnf_in(n % 8) {
695 if r.bsrr().read().bs(n % 8) { 695 vals::CnfIn::PULL => {
696 Pull::Up 696 match r.odr().read().odr(n % 8) {
697 } else if r.bsrr().read().br(n % 8) { 697 vals::Odr::LOW => Pull::Down,
698 Pull::Down 698 vals::Odr::HIGH => Pull::Up
699 } else { 699 }
700 Pull::None 700 },
701 _ => Pull::None
701 } 702 }
702 } 703 },
704 _ => Pull::None
703 } 705 }
704 } 706 }
705 #[cfg(gpio_v2)] 707 #[cfg(gpio_v2)]