Skip to content

Commit c48915a

Browse files
Move i2c mappings to pin_mappings
1 parent a6aa4b4 commit c48915a

File tree

2 files changed

+64
-84
lines changed

2 files changed

+64
-84
lines changed

src/i2c.rs

Lines changed: 0 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -20,88 +20,6 @@ pub struct I2c<I2C, SCLPIN, SDAPIN> {
2020
pub trait SclPin<I2C> {}
2121
pub trait SdaPin<I2C> {}
2222

23-
#[allow(unused)]
24-
macro_rules! i2c_pins {
25-
($($I2C:ident => {
26-
scl => [$($scl:ty),+ $(,)*],
27-
sda => [$($sda:ty),+ $(,)*],
28-
})+) => {
29-
$(
30-
$(
31-
impl SclPin<crate::stm32::$I2C> for $scl {}
32-
)+
33-
$(
34-
impl SdaPin<crate::stm32::$I2C> for $sda {}
35-
)+
36-
)+
37-
}
38-
}
39-
40-
#[cfg(any(feature = "stm32f030", feature = "stm32f042"))]
41-
i2c_pins! {
42-
I2C1 => {
43-
scl => [gpioa::PA11<Alternate<AF5>>, gpiob::PB6<Alternate<AF1>>, gpiob::PB8<Alternate<AF1>>],
44-
sda => [gpioa::PA12<Alternate<AF5>>, gpiob::PB7<Alternate<AF1>>, gpiob::PB9<Alternate<AF1>>],
45-
}
46-
}
47-
#[cfg(any(
48-
feature = "stm32f030x6",
49-
feature = "stm32f030xc",
50-
feature = "stm32f042",
51-
))]
52-
i2c_pins! {
53-
I2C1 => {
54-
scl => [gpioa::PA9<Alternate<AF4>>],
55-
sda => [gpioa::PA10<Alternate<AF4>>],
56-
}
57-
}
58-
#[cfg(any(feature = "stm32f042", feature = "stm32f030x6"))]
59-
i2c_pins! {
60-
I2C1 => {
61-
scl => [gpiob::PB10<Alternate<AF1>>],
62-
sda => [gpiob::PB11<Alternate<AF1>>],
63-
}
64-
}
65-
#[cfg(any(feature = "stm32f042", feature = "stm32f030xc"))]
66-
i2c_pins! {
67-
I2C1 => {
68-
scl => [gpiob::PB13<Alternate<AF5>>, gpiof::PF1<Alternate<AF1>>],
69-
sda => [gpiob::PB14<Alternate<AF5>>, gpiof::PF0<Alternate<AF1>>],
70-
}
71-
}
72-
#[cfg(feature = "stm32f070")]
73-
i2c_pins! {
74-
I2C1 => {
75-
scl => [gpiob::PB6<Alternate<AF1>>, gpiob::PB8<Alternate<AF1>>],
76-
sda => [gpiob::PB7<Alternate<AF1>>, gpiob::PB9<Alternate<AF1>>],
77-
}
78-
}
79-
#[cfg(feature = "stm32f070x6")]
80-
i2c_pins! {
81-
I2C1 => {
82-
scl => [gpioa::PA9<Alternate<AF4>>, gpiof::PF0<Alternate<AF1>>],
83-
sda => [gpioa::PA10<Alternate<AF4>>, gpiof::PF1<Alternate<AF1>>],
84-
}
85-
}
86-
#[cfg(any(
87-
feature = "stm32f030x8",
88-
feature = "stm32f030xc",
89-
feature = "stm32f070xb"
90-
))]
91-
i2c_pins! {
92-
I2C2 => {
93-
scl => [gpiob::PB10<Alternate<AF1>>],
94-
sda => [gpiob::PB11<Alternate<AF1>>],
95-
}
96-
}
97-
#[cfg(any(feature = "stm32f030xc", feature = "stm32f070xb"))]
98-
i2c_pins! {
99-
I2C2 => {
100-
scl => [gpiob::PB13<Alternate<AF5>>],
101-
sda => [gpiob::PB14<Alternate<AF5>>],
102-
}
103-
}
104-
10523
#[derive(Debug)]
10624
pub enum Error {
10725
OVERRUN,

src/pin_mappings.rs

Lines changed: 64 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,11 @@ use crate::gpio::gpioc::*;
88
#[cfg(feature = "stm32f030xc")]
99
use crate::gpio::gpiod::*;
1010
#[allow(unused)]
11+
#[cfg(feature = "device-selected")]
12+
use crate::gpio::gpiof::*;
13+
#[allow(unused)]
1114
use crate::gpio::{Alternate, AF0, AF1, AF2, AF4, AF5};
15+
use crate::i2c::*;
1216
use crate::serial::*;
1317
use crate::spi::*;
1418
#[cfg(feature = "device-selected")]
@@ -36,8 +40,22 @@ pins! {
3640
PB3 => {AF0: SckPin<SPI1>},
3741
PB4 => {AF0: MisoPin<SPI1>},
3842
PB5 => {AF0: MosiPin<SPI1>},
39-
PB6 => {AF0: TxPin<USART1>},
40-
PB7 => {AF0: RxPin<USART1>}
43+
PB6 => {
44+
AF0: TxPin<USART1>,
45+
AF1: SclPin<I2C1>
46+
},
47+
PB7 => {
48+
AF0: RxPin<USART1>,
49+
AF1: SdaPin<I2C1>
50+
},
51+
PB8 => {AF1: SclPin<I2C1>},
52+
PB9 => {AF1: SdaPin<I2C1>}
53+
}
54+
55+
#[cfg(any(feature = "stm32f030", feature = "stm32f042"))]
56+
pins! {
57+
PA11 => {AF5: SclPin<I2C1>},
58+
PA12 => {AF5: SdaPin<I2C1>}
4159
}
4260

4361
#[cfg(feature = "stm32f030x6")]
@@ -109,3 +127,47 @@ pins! {
109127
PB14 => {AF0: MisoPin<SPI2>},
110128
PB15 => {AF0: MosiPin<SPI2>}
111129
}
130+
131+
#[cfg(any(
132+
feature = "stm32f030x6",
133+
feature = "stm32f030xc",
134+
feature = "stm32f042",
135+
feature = "stm32f070x6",
136+
))]
137+
pins! {
138+
PA9 => {AF4: SclPin<I2C1>},
139+
PA10 => {AF4: SdaPin<I2C1>}
140+
}
141+
142+
#[cfg(any(
143+
feature = "stm32f042",
144+
feature = "stm32f030x6",
145+
feature = "stm32f030x8",
146+
feature = "stm32f030xc",
147+
feature = "stm32f070xb"
148+
))]
149+
pins! {
150+
PB10 => {AF1: SclPin<I2C1>},
151+
PB11 => {AF1: SdaPin<I2C1>}
152+
}
153+
154+
#[cfg(any(
155+
feature = "stm32f042",
156+
feature = "stm32f030xc",
157+
feature = "stm32f070x6",
158+
))]
159+
pins! {
160+
PF1 => {AF1: SclPin<I2C1>},
161+
PF0 => {AF1: SdaPin<I2C1>}
162+
}
163+
164+
#[cfg(any(
165+
feature = "stm32f042",
166+
feature = "stm32f030xc",
167+
feature = "stm32f030xc",
168+
feature = "stm32f070xb"
169+
))]
170+
pins! {
171+
PB13 => {AF5: SclPin<I2C1>},
172+
PB14 => {AF5: SdaPin<I2C1>}
173+
}

0 commit comments

Comments
 (0)