From 96cfe503c630f749d0b3cbefd9b850828826324b Mon Sep 17 00:00:00 2001 From: ju6ge Date: Sun, 10 Aug 2025 01:09:40 +0200 Subject: [PATCH] start working on i2c slave implementation --- src/i2c_slave.rs | 23 +++++++++++++++++++++++ src/main.rs | 2 ++ 2 files changed, 25 insertions(+) create mode 100644 src/i2c_slave.rs 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;