Skip to content

Commit 46b2bd4

Browse files
committed
pins release
1 parent 672f95c commit 46b2bd4

File tree

5 files changed

+43
-39
lines changed

5 files changed

+43
-39
lines changed

src/analog/comparator.rs

Lines changed: 37 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -524,38 +524,52 @@ pub trait OutputPin<COMP> {
524524
fn release(self) -> Self;
525525
}
526526

527-
macro_rules! output_pin {
527+
macro_rules! output_pin_push_pull {
528528
($COMP:ident, $pin:ty) => {
529529
impl OutputPin<$COMP> for $pin {
530530
fn setup(&self) {
531531
self.set_alt_mode(AltFunction::AF7)
532532
}
533533

534534
fn release(self) -> Self {
535-
self.into()
535+
self.into_push_pull_output()
536536
}
537537
}
538538
};
539539
}
540540

541-
output_pin!(COMP1, gpioa::PA0<Output<PushPull>>);
542-
output_pin!(COMP1, gpioa::PA0<Output<OpenDrain>>);
543-
output_pin!(COMP1, gpioa::PA6<Output<PushPull>>);
544-
output_pin!(COMP1, gpioa::PA6<Output<OpenDrain>>);
545-
output_pin!(COMP1, gpioa::PA11<Output<PushPull>>);
546-
output_pin!(COMP1, gpioa::PA11<Output<OpenDrain>>);
547-
output_pin!(COMP1, gpiob::PB0<Output<PushPull>>);
548-
output_pin!(COMP1, gpiob::PB0<Output<OpenDrain>>);
549-
output_pin!(COMP1, gpiob::PB10<Output<PushPull>>);
550-
output_pin!(COMP1, gpiob::PB10<Output<OpenDrain>>);
551-
552-
output_pin!(COMP2, gpioa::PA2<Output<PushPull>>);
553-
output_pin!(COMP2, gpioa::PA2<Output<OpenDrain>>);
554-
output_pin!(COMP2, gpioa::PA7<Output<PushPull>>);
555-
output_pin!(COMP2, gpioa::PA7<Output<OpenDrain>>);
556-
output_pin!(COMP2, gpioa::PA12<Output<PushPull>>);
557-
output_pin!(COMP2, gpioa::PA12<Output<OpenDrain>>);
558-
output_pin!(COMP2, gpiob::PB5<Output<PushPull>>);
559-
output_pin!(COMP2, gpiob::PB5<Output<OpenDrain>>);
560-
output_pin!(COMP2, gpiob::PB11<Output<PushPull>>);
561-
output_pin!(COMP2, gpiob::PB11<Output<OpenDrain>>);
541+
macro_rules! output_pin_open_drain {
542+
($COMP:ident, $pin:ty) => {
543+
impl OutputPin<$COMP> for $pin {
544+
fn setup(&self) {
545+
self.set_alt_mode(AltFunction::AF7)
546+
}
547+
548+
fn release(self) -> Self {
549+
self.into_open_drain_output()
550+
}
551+
}
552+
};
553+
}
554+
555+
output_pin_push_pull!(COMP1, gpioa::PA0<Output<PushPull>>);
556+
output_pin_open_drain!(COMP1, gpioa::PA0<Output<OpenDrain>>);
557+
output_pin_push_pull!(COMP1, gpioa::PA6<Output<PushPull>>);
558+
output_pin_open_drain!(COMP1, gpioa::PA6<Output<OpenDrain>>);
559+
output_pin_push_pull!(COMP1, gpioa::PA11<Output<PushPull>>);
560+
output_pin_open_drain!(COMP1, gpioa::PA11<Output<OpenDrain>>);
561+
output_pin_push_pull!(COMP1, gpiob::PB0<Output<PushPull>>);
562+
output_pin_open_drain!(COMP1, gpiob::PB0<Output<OpenDrain>>);
563+
output_pin_push_pull!(COMP1, gpiob::PB10<Output<PushPull>>);
564+
output_pin_open_drain!(COMP1, gpiob::PB10<Output<OpenDrain>>);
565+
566+
output_pin_push_pull!(COMP2, gpioa::PA2<Output<PushPull>>);
567+
output_pin_open_drain!(COMP2, gpioa::PA2<Output<OpenDrain>>);
568+
output_pin_push_pull!(COMP2, gpioa::PA7<Output<PushPull>>);
569+
output_pin_open_drain!(COMP2, gpioa::PA7<Output<OpenDrain>>);
570+
output_pin_push_pull!(COMP2, gpioa::PA12<Output<PushPull>>);
571+
output_pin_open_drain!(COMP2, gpioa::PA12<Output<OpenDrain>>);
572+
output_pin_push_pull!(COMP2, gpiob::PB5<Output<PushPull>>);
573+
output_pin_open_drain!(COMP2, gpiob::PB5<Output<OpenDrain>>);
574+
output_pin_push_pull!(COMP2, gpiob::PB11<Output<PushPull>>);
575+
output_pin_open_drain!(COMP2, gpiob::PB11<Output<OpenDrain>>);

src/i2c.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ macro_rules! i2c {
159159
}
160160

161161
fn release(self) -> Self {
162-
self.into()
162+
self.into_open_drain_output()
163163
}
164164
}
165165
)+
@@ -171,7 +171,7 @@ macro_rules! i2c {
171171
}
172172

173173
fn release(self) -> Self {
174-
self.into()
174+
self.into_open_drain_output()
175175
}
176176
}
177177
)+

src/serial/usart.rs

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,11 @@ pub struct Serial<USART, Config> {
9595
// Serial TX pin
9696
pub trait TxPin<USART> {
9797
fn setup(&self);
98-
fn release(self) -> Self;
9998
}
10099

101100
// Serial RX pin
102101
pub trait RxPin<USART> {
103102
fn setup(&self);
104-
fn release(self) -> Self;
105103
}
106104

107105
pub trait SerialExt<USART, Config> {
@@ -147,10 +145,6 @@ macro_rules! uart_shared {
147145
fn setup(&self) {
148146
self.set_alt_mode($TAF)
149147
}
150-
151-
fn release(self) -> Self {
152-
self.into()
153-
}
154148
}
155149
)+
156150

@@ -159,10 +153,6 @@ macro_rules! uart_shared {
159153
fn setup(&self) {
160154
self.set_alt_mode($RAF)
161155
}
162-
163-
fn release(self) -> Self {
164-
self.into()
165-
}
166156
}
167157
)+
168158

src/spi.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ macro_rules! spi {
110110
}
111111

112112
fn release(self) -> Self {
113-
self.into()
113+
self.into_analog()
114114
}
115115
}
116116
)*
@@ -121,7 +121,7 @@ macro_rules! spi {
121121
}
122122

123123
fn release(self) -> Self {
124-
self.into()
124+
self.into_analog()
125125
}
126126
}
127127
)*
@@ -132,7 +132,7 @@ macro_rules! spi {
132132
}
133133

134134
fn release(self) -> Self {
135-
self.into()
135+
self.into_analog()
136136
}
137137
}
138138
)*

src/timer/pins.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ macro_rules! timer_pins {
2525
}
2626

2727
fn release(self) -> Self {
28-
self.into()
28+
self.into_analog()
2929
}
3030
}
3131
)+

0 commit comments

Comments
 (0)