diff --git a/src/i2c_slave.rs b/src/i2c_slave.rs new file mode 100644 index 0000000..63b31b0 --- /dev/null +++ b/src/i2c_slave.rs @@ -0,0 +1,23 @@ +use ch32_hal::{ + self as hal, + i2c::{SclPin, SdaPin}, + Peripheral, + }; +use panic_halt as _; + +use core::marker::PhantomData; +use hal::i2c::Instance; + +pub struct I2cSlave<'d, T: Instance> { + _phantom: PhantomData<&'d mut T>, +} + +impl<'d, T: Instance> I2cSlave<'d, T> { + pub fn new( + peri: impl Peripheral
+ 'd, + scl: impl Peripheral
> + 'd, + sda: impl Peripheral
> + 'd, + ) -> Self { + todo!() + } +} diff --git a/src/main.rs b/src/main.rs index 6615854..3b2a650 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,6 +3,8 @@ #![feature(type_alias_impl_trait)] #![feature(impl_trait_in_assoc_type)] +mod i2c_slave; + use embassy_executor::Spawner; use embassy_time::Timer; use hal::bind_interrupts;