embassy_stm32_plus/traits/spi/
spi1.rs1use embassy_stm32::peripherals::SPI1;
2use crate::builder::spi::spi1::rx::{Spi1Miso, Spi1RxBuilder};
3use crate::builder::spi::spi1::{Spi1Builder, Spi1Sck};
4use crate::builder::spi::spi1::tx::{Spi1Mosi, Spi1TxBuilder};
5
6pub trait Spi1Trait {
8 fn builder(self, sck: Spi1Sck, mosi: Spi1Mosi, miso: Spi1Miso) -> Spi1Builder;
10
11 fn tx_builder(self, mosi: Spi1Mosi) -> Spi1TxBuilder;
13
14 fn rx_builder(self, sck: Spi1Sck, miso: Spi1Miso) -> Spi1RxBuilder;
16}
17
18impl Spi1Trait for SPI1 {
20 #[inline]
21 fn builder(self, sck: Spi1Sck, mosi: Spi1Mosi, miso: Spi1Miso) -> Spi1Builder {
22 Spi1Builder::new(self, sck, mosi, miso)
23 }
24
25 #[inline]
26 fn tx_builder(self, mosi: Spi1Mosi) -> Spi1TxBuilder {
27 Spi1TxBuilder::new(self, mosi)
28 }
29
30 #[inline]
31 fn rx_builder(self, sck: Spi1Sck, miso: Spi1Miso) -> Spi1RxBuilder {
32 Spi1RxBuilder::new(self, sck, miso)
33 }
34}