embassy_stm32_plus/traits/usb/
mod.rs

1use embassy_stm32::peripherals::{PA11, PA12};
2#[cfg(USB)]
3use embassy_stm32::peripherals::USB;
4#[cfg(USB_OTG_FS)]
5use embassy_stm32::peripherals::USB_OTG_FS;
6#[cfg(USB)]
7use crate::builder::usb::basis::UsbBuilder;
8#[cfg(USB_OTG_FS)]
9use crate::builder::usb::otg::UsbBuilder;
10
11/// usb trait
12pub trait UsbTrait {
13    /// get usb builder
14    fn builder(self, dp: PA12, dm: PA11) -> UsbBuilder;
15}
16
17/// usb support usb trait
18#[cfg(USB)]
19impl UsbTrait for USB {
20    #[inline]
21    fn builder(self, dp: PA12, dm: PA11) -> UsbBuilder {
22        UsbBuilder::new(self, dp, dm)
23    }
24}
25
26/// usb support usb trait
27#[cfg(USB_OTG_FS)]
28impl UsbTrait for USB_OTG_FS {
29    #[inline]
30    fn builder(self, dp: PA12, dm: PA11) -> UsbBuilder {
31        UsbBuilder::new(self, dp, dm)
32    }
33}