diff --git a/src/i2c.rs b/src/i2c.rs index ab919bb..61deb47 100644 --- a/src/i2c.rs +++ b/src/i2c.rs @@ -1,18 +1,11 @@ -#[cfg(feature = "stm32f042")] +#[cfg(any(feature = "stm32f042", feature = "stm32f030"))] use crate::stm32::{I2C1, RCC}; use embedded_hal::blocking::i2c::{Write, WriteRead}; -use core::cmp; -#[cfg(feature = "stm32f042")] -use crate::gpio::gpioa::{PA10, PA11, PA12, PA9}; -#[cfg(feature = "stm32f042")] -use crate::gpio::gpiob::{PB10, PB11, PB13, PB14, PB6, PB7, PB8, PB9}; -#[cfg(feature = "stm32f042")] -use crate::gpio::gpiof::{PF0, PF1}; -#[cfg(feature = "stm32f042")] -use crate::gpio::{Alternate, AF1, AF4, AF5}; +use crate::gpio::*; use crate::time::{KiloHertz, U32Ext}; +use core::cmp; /// I2C abstraction pub struct I2c { @@ -22,20 +15,24 @@ pub struct I2c { pub trait Pins {} -#[cfg(feature = "stm32f042")] -impl Pins for (PA9>, PA10>) {} -#[cfg(feature = "stm32f042")] -impl Pins for (PA11>, PA12>) {} -#[cfg(feature = "stm32f042")] -impl Pins for (PB6>, PB7>) {} -#[cfg(feature = "stm32f042")] -impl Pins for (PB8>, PB9>) {} -#[cfg(feature = "stm32f042")] -impl Pins for (PB10>, PB11>) {} -#[cfg(feature = "stm32f042")] -impl Pins for (PB13>, PB14>) {} -#[cfg(feature = "stm32f042")] -impl Pins for (PF1>, PF0>) {} +#[cfg(any( + feature = "stm32f042", + feature = "stm32f030x6", + feature = "stm32f030xc" +))] +impl Pins for (gpioa::PA9>, gpioa::PA10>) {} +#[cfg(any(feature = "stm32f042", feature = "stm32f030"))] +impl Pins for (gpioa::PA11>, gpioa::PA12>) {} +#[cfg(any(feature = "stm32f042", feature = "stm32f030"))] +impl Pins for (gpiob::PB6>, gpiob::PB7>) {} +#[cfg(any(feature = "stm32f042", feature = "stm32f030"))] +impl Pins for (gpiob::PB8>, gpiob::PB9>) {} +#[cfg(any(feature = "stm32f042", feature = "stm32f030x6"))] +impl Pins for (gpiob::PB10>, gpiob::PB11>) {} +#[cfg(any(feature = "stm32f042", feature = "stm32f030xc"))] +impl Pins for (gpiob::PB13>, gpiob::PB14>) {} +#[cfg(any(feature = "stm32f042", feature = "stm32f030xc"))] +impl Pins for (gpiof::PF1>, gpiof::PF0>) {} #[derive(Debug)] pub enum Error { @@ -43,7 +40,7 @@ pub enum Error { NACK, } -#[cfg(feature = "stm32f042")] +#[cfg(any(feature = "stm32f042", feature = "stm32f030"))] impl I2c { pub fn i2c1(i2c: I2C1, pins: PINS, speed: KiloHertz) -> Self where @@ -136,7 +133,7 @@ impl I2c { } } -#[cfg(feature = "stm32f042")] +#[cfg(any(feature = "stm32f042", feature = "stm32f030"))] impl WriteRead for I2c { type Error = Error; @@ -214,7 +211,7 @@ impl WriteRead for I2c { } } -#[cfg(feature = "stm32f042")] +#[cfg(any(feature = "stm32f042", feature = "stm32f030"))] impl Write for I2c { type Error = Error;