aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxoviat <[email protected]>2023-08-08 23:05:12 +0000
committerGitHub <[email protected]>2023-08-08 23:05:12 +0000
commitd375c46590e25907b999fad22383cb912e2774f4 (patch)
tree9f07ab0bd21ae7824e6652a03dadb86e1e1d5b3f
parent47b8e04b1c2cf40dc776357ddf6b5c32c6b6824e (diff)
parent7b3d7a382635307b03b0b94920272a04e7516395 (diff)
Merge pull request #1751 from oro-os/add-pin-drop-docs
stm32: add note about Output/OutputOpenDrain drop behavior
-rw-r--r--embassy-stm32/src/gpio.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/embassy-stm32/src/gpio.rs b/embassy-stm32/src/gpio.rs
index 268ba042b..a382cb742 100644
--- a/embassy-stm32/src/gpio.rs
+++ b/embassy-stm32/src/gpio.rs
@@ -351,6 +351,10 @@ impl From<Level> for bool {
351} 351}
352 352
353/// GPIO output driver. 353/// GPIO output driver.
354///
355/// Note that pins will **return to their floating state** when `Output` is dropped.
356/// If pins should retain their state indefinitely, either keep ownership of the
357/// `Output`, or pass it to [`core::mem::forget`].
354pub struct Output<'d, T: Pin> { 358pub struct Output<'d, T: Pin> {
355 pub(crate) pin: Flex<'d, T>, 359 pub(crate) pin: Flex<'d, T>,
356} 360}
@@ -418,6 +422,10 @@ impl<'d, T: Pin> Output<'d, T> {
418} 422}
419 423
420/// GPIO output open-drain driver. 424/// GPIO output open-drain driver.
425///
426/// Note that pins will **return to their floating state** when `OutputOpenDrain` is dropped.
427/// If pins should retain their state indefinitely, either keep ownership of the
428/// `OutputOpenDrain`, or pass it to [`core::mem::forget`].
421pub struct OutputOpenDrain<'d, T: Pin> { 429pub struct OutputOpenDrain<'d, T: Pin> {
422 pub(crate) pin: Flex<'d, T>, 430 pub(crate) pin: Flex<'d, T>,
423} 431}