diff options
| author | Joël Schulz-Ansres <[email protected]> | 2024-05-22 23:44:34 +0200 |
|---|---|---|
| committer | Joël Schulz-Ansres <[email protected]> | 2024-05-22 23:44:34 +0200 |
| commit | 2f7bba4668006ed3124adf6c94efeb2169d79a9c (patch) | |
| tree | f2e6eeb8ef9194f92adbffba5b04b0819860bacf /embassy-stm32 | |
| parent | cc6998be30856d05a4a6a975f35fd0e5df2ea807 (diff) | |
Use ODR register for Pull::Up or Down
Diffstat (limited to 'embassy-stm32')
| -rw-r--r-- | embassy-stm32/src/gpio.rs | 22 |
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)] |
