pub struct BlockingI2c<I2C: Instance> { /* private fields */ }
Expand description
embedded-hal compatible blocking I2C implementation
NOTE: Before using blocking I2C, you need to enable the DWT cycle counter using the DWT::enable_cycle_counter method.
Implementations§
Source§impl<I2C: Instance> BlockingI2c<I2C>
impl<I2C: Instance> BlockingI2c<I2C>
Sourcepub fn new<const R: u8>(
i2c: impl Into<Rmp<I2C, R>>,
pins: (impl RInto<I2C::Scl, R>, impl RInto<I2C::Sda, R>),
mode: impl Into<Mode>,
rcc: &mut Rcc,
start_timeout_us: u32,
start_retries: u8,
addr_timeout_us: u32,
data_timeout_us: u32,
) -> Self
pub fn new<const R: u8>( i2c: impl Into<Rmp<I2C, R>>, pins: (impl RInto<I2C::Scl, R>, impl RInto<I2C::Sda, R>), mode: impl Into<Mode>, rcc: &mut Rcc, start_timeout_us: u32, start_retries: u8, addr_timeout_us: u32, data_timeout_us: u32, ) -> Self
Creates a blocking I2C1 object on pins PB6 and PB7 or PB8 and PB9 using the embedded-hal BlockingI2c
trait.
Source§impl<I2C: Instance> BlockingI2c<I2C>
impl<I2C: Instance> BlockingI2c<I2C>
pub fn write(&mut self, addr: u8, bytes: &[u8]) -> Result<(), Error>
pub fn reset(&mut self)
pub fn read(&mut self, addr: u8, buffer: &mut [u8]) -> Result<(), Error>
pub fn write_read( &mut self, addr: u8, bytes: &[u8], buffer: &mut [u8], ) -> Result<(), Error>
pub fn transaction_slice( &mut self, _addr: u8, _ops_slice: &mut [Operation<'_>], ) -> Result<(), Error>
Trait Implementations§
Source§impl<I2C: Instance> I2c for BlockingI2c<I2C>
impl<I2C: Instance> I2c for BlockingI2c<I2C>
Source§fn write(&mut self, addr: u8, bytes: &[u8]) -> Result<(), Self::Error>
fn write(&mut self, addr: u8, bytes: &[u8]) -> Result<(), Self::Error>
Writes bytes to slave with address
address
. Read moreSource§impl<I2C: Instance> Transactional for BlockingI2c<I2C>
impl<I2C: Instance> Transactional for BlockingI2c<I2C>
Source§impl<I2C: Instance> Read for BlockingI2c<I2C>
impl<I2C: Instance> Read for BlockingI2c<I2C>
Source§impl<I2C: Instance> Write for BlockingI2c<I2C>
impl<I2C: Instance> Write for BlockingI2c<I2C>
Source§impl<I2C: Instance> WriteRead for BlockingI2c<I2C>
impl<I2C: Instance> WriteRead for BlockingI2c<I2C>
Auto Trait Implementations§
impl<I2C> Freeze for BlockingI2c<I2C>
impl<I2C> RefUnwindSafe for BlockingI2c<I2C>where
I2C: RefUnwindSafe,
<I2C as I2cCommon>::Scl: RefUnwindSafe,
<I2C as I2cCommon>::Sda: RefUnwindSafe,
impl<I2C> Send for BlockingI2c<I2C>
impl<I2C> Sync for BlockingI2c<I2C>
impl<I2C> Unpin for BlockingI2c<I2C>
impl<I2C> UnwindSafe for BlockingI2c<I2C>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more