embassy_stm32_plus/builder/i2c/
base.rs

1use embassy_stm32::i2c::Config;
2use embassy_stm32::time::Hertz;
3
4/// i2c base data
5pub struct I2cBase<T> {
6    /// i2c device
7    pub i2c: T,
8    /// hertz
9    pub freq: Option<Hertz>,
10    /// i2c config
11    pub config: Option<Config>,
12}
13
14/// custom method
15impl<T> I2cBase<T> {
16    /// create base data
17    #[inline]
18    pub fn new(i2c: T) -> Self {
19        Self { i2c, freq: None, config: None }
20    }
21
22    /// set i2c freq hertz
23    #[inline]
24    pub fn freq(mut self, freq: Hertz) -> Self {
25        self.freq = Some(freq);
26        self
27    }
28
29    /// set i2c config
30    #[inline]
31    pub fn config(mut self, config: Config) -> Self {
32        self.config = Some(config);
33        self
34    }
35
36    /// set i2c freq hertz
37    #[inline]
38    pub fn set_freq(&mut self, freq: Hertz) {
39        self.freq = Some(freq);
40    }
41
42    /// set i2c config
43    #[inline]
44    pub fn set_config(&mut self, config: Config) {
45        self.config = Some(config);
46    }
47}