embassy_stm32_plus/traits/dac/
mod.rs

1use embassy_stm32::peripherals::{DAC1, PA4, PA5};
2use crate::builder::dac::ch1::DacCh1Builder;
3use crate::builder::dac::ch2::DacCh2Builder;
4use crate::builder::dac::DacBuilder;
5
6/// dac trait
7pub trait DacTrait {
8    /// create dac builder
9    fn builder(self, ch1_pin: PA4, ch2_pin: PA5) -> DacBuilder;
10
11    /// create dac ch1 builder
12    fn ch1_builder(self, ch1_pin: PA4) -> DacCh1Builder;
13
14    /// create dac ch2 builder
15    fn ch2_builder(self, ch2_pin: PA5) -> DacCh2Builder;
16}
17
18/// dac support dac trait
19impl DacTrait for DAC1 {
20    #[inline]
21    fn builder(self, ch1_pin: PA4, ch2_pin: PA5) -> DacBuilder {
22        DacBuilder::new(self, ch1_pin, ch2_pin)
23    }
24
25    #[inline]
26    fn ch1_builder(self, ch1_pin: PA4) -> DacCh1Builder {
27        DacCh1Builder::new(self, ch1_pin)
28    }
29
30    #[inline]
31    fn ch2_builder(self, ch2_pin: PA5) -> DacCh2Builder {
32        DacCh2Builder::new(self, ch2_pin)
33    }
34}