Struct embassy_stm32::usb::Driver
source ยท pub struct Driver<'d, T: Instance> { /* private fields */ }
Expand description
USB driver.
Implementationsยง
sourceยงimpl<'d, T: Instance> Driver<'d, T>
impl<'d, T: Instance> Driver<'d, T>
sourcepub fn new_fs(
_peri: impl Peripheral<P = T> + 'd,
_irq: impl Binding<T::Interrupt, InterruptHandler<T>> + 'd,
dp: impl Peripheral<P = impl DpPin<T>> + 'd,
dm: impl Peripheral<P = impl DmPin<T>> + 'd,
ep_out_buffer: &'d mut [u8],
config: Config,
) -> Self
pub fn new_fs( _peri: impl Peripheral<P = T> + 'd, _irq: impl Binding<T::Interrupt, InterruptHandler<T>> + 'd, dp: impl Peripheral<P = impl DpPin<T>> + 'd, dm: impl Peripheral<P = impl DmPin<T>> + 'd, ep_out_buffer: &'d mut [u8], config: Config, ) -> Self
Initializes USB OTG peripheral with internal Full-Speed PHY.
ยงArguments
ep_out_buffer
- An internal buffer used to temporarily store received packets. Must be large enough to fit all OUT endpoint max packet sizes. Endpoint allocation will fail if it is too small.
sourcepub fn new_fs_ulpi(
_peri: impl Peripheral<P = T> + 'd,
_irq: impl Binding<T::Interrupt, InterruptHandler<T>> + 'd,
ulpi_clk: impl Peripheral<P = impl UlpiClkPin<T>> + 'd,
ulpi_dir: impl Peripheral<P = impl UlpiDirPin<T>> + 'd,
ulpi_nxt: impl Peripheral<P = impl UlpiNxtPin<T>> + 'd,
ulpi_stp: impl Peripheral<P = impl UlpiStpPin<T>> + 'd,
ulpi_d0: impl Peripheral<P = impl UlpiD0Pin<T>> + 'd,
ulpi_d1: impl Peripheral<P = impl UlpiD1Pin<T>> + 'd,
ulpi_d2: impl Peripheral<P = impl UlpiD2Pin<T>> + 'd,
ulpi_d3: impl Peripheral<P = impl UlpiD3Pin<T>> + 'd,
ulpi_d4: impl Peripheral<P = impl UlpiD4Pin<T>> + 'd,
ulpi_d5: impl Peripheral<P = impl UlpiD5Pin<T>> + 'd,
ulpi_d6: impl Peripheral<P = impl UlpiD6Pin<T>> + 'd,
ulpi_d7: impl Peripheral<P = impl UlpiD7Pin<T>> + 'd,
ep_out_buffer: &'d mut [u8],
config: Config,
) -> Self
pub fn new_fs_ulpi( _peri: impl Peripheral<P = T> + 'd, _irq: impl Binding<T::Interrupt, InterruptHandler<T>> + 'd, ulpi_clk: impl Peripheral<P = impl UlpiClkPin<T>> + 'd, ulpi_dir: impl Peripheral<P = impl UlpiDirPin<T>> + 'd, ulpi_nxt: impl Peripheral<P = impl UlpiNxtPin<T>> + 'd, ulpi_stp: impl Peripheral<P = impl UlpiStpPin<T>> + 'd, ulpi_d0: impl Peripheral<P = impl UlpiD0Pin<T>> + 'd, ulpi_d1: impl Peripheral<P = impl UlpiD1Pin<T>> + 'd, ulpi_d2: impl Peripheral<P = impl UlpiD2Pin<T>> + 'd, ulpi_d3: impl Peripheral<P = impl UlpiD3Pin<T>> + 'd, ulpi_d4: impl Peripheral<P = impl UlpiD4Pin<T>> + 'd, ulpi_d5: impl Peripheral<P = impl UlpiD5Pin<T>> + 'd, ulpi_d6: impl Peripheral<P = impl UlpiD6Pin<T>> + 'd, ulpi_d7: impl Peripheral<P = impl UlpiD7Pin<T>> + 'd, ep_out_buffer: &'d mut [u8], config: Config, ) -> Self
Initializes USB OTG peripheral with external Full-speed PHY (usually, a High-speed PHY in Full-speed mode).
ยงArguments
ep_out_buffer
- An internal buffer used to temporarily store received packets. Must be large enough to fit all OUT endpoint max packet sizes. Endpoint allocation will fail if it is too small.
sourcepub fn new_hs_ulpi(
_peri: impl Peripheral<P = T> + 'd,
_irq: impl Binding<T::Interrupt, InterruptHandler<T>> + 'd,
ulpi_clk: impl Peripheral<P = impl UlpiClkPin<T>> + 'd,
ulpi_dir: impl Peripheral<P = impl UlpiDirPin<T>> + 'd,
ulpi_nxt: impl Peripheral<P = impl UlpiNxtPin<T>> + 'd,
ulpi_stp: impl Peripheral<P = impl UlpiStpPin<T>> + 'd,
ulpi_d0: impl Peripheral<P = impl UlpiD0Pin<T>> + 'd,
ulpi_d1: impl Peripheral<P = impl UlpiD1Pin<T>> + 'd,
ulpi_d2: impl Peripheral<P = impl UlpiD2Pin<T>> + 'd,
ulpi_d3: impl Peripheral<P = impl UlpiD3Pin<T>> + 'd,
ulpi_d4: impl Peripheral<P = impl UlpiD4Pin<T>> + 'd,
ulpi_d5: impl Peripheral<P = impl UlpiD5Pin<T>> + 'd,
ulpi_d6: impl Peripheral<P = impl UlpiD6Pin<T>> + 'd,
ulpi_d7: impl Peripheral<P = impl UlpiD7Pin<T>> + 'd,
ep_out_buffer: &'d mut [u8],
config: Config,
) -> Self
pub fn new_hs_ulpi( _peri: impl Peripheral<P = T> + 'd, _irq: impl Binding<T::Interrupt, InterruptHandler<T>> + 'd, ulpi_clk: impl Peripheral<P = impl UlpiClkPin<T>> + 'd, ulpi_dir: impl Peripheral<P = impl UlpiDirPin<T>> + 'd, ulpi_nxt: impl Peripheral<P = impl UlpiNxtPin<T>> + 'd, ulpi_stp: impl Peripheral<P = impl UlpiStpPin<T>> + 'd, ulpi_d0: impl Peripheral<P = impl UlpiD0Pin<T>> + 'd, ulpi_d1: impl Peripheral<P = impl UlpiD1Pin<T>> + 'd, ulpi_d2: impl Peripheral<P = impl UlpiD2Pin<T>> + 'd, ulpi_d3: impl Peripheral<P = impl UlpiD3Pin<T>> + 'd, ulpi_d4: impl Peripheral<P = impl UlpiD4Pin<T>> + 'd, ulpi_d5: impl Peripheral<P = impl UlpiD5Pin<T>> + 'd, ulpi_d6: impl Peripheral<P = impl UlpiD6Pin<T>> + 'd, ulpi_d7: impl Peripheral<P = impl UlpiD7Pin<T>> + 'd, ep_out_buffer: &'d mut [u8], config: Config, ) -> Self
Initializes USB OTG peripheral with external High-Speed PHY.
ยงArguments
ep_out_buffer
- An internal buffer used to temporarily store received packets. Must be large enough to fit all OUT endpoint max packet sizes. Endpoint allocation will fail if it is too small.
Trait Implementationsยง
sourceยงimpl<'d, T: Instance> Driver<'d> for Driver<'d, T>
impl<'d, T: Instance> Driver<'d> for Driver<'d, T>
sourceยงtype EndpointOut = Endpoint<'d, Out>
type EndpointOut = Endpoint<'d, Out>
Type of the OUT endpoints for this driver.
sourceยงtype EndpointIn = Endpoint<'d, In>
type EndpointIn = Endpoint<'d, In>
Type of the IN endpoints for this driver.
sourceยงtype ControlPipe = ControlPipe<'d>
type ControlPipe = ControlPipe<'d>
Type of the control pipe for this driver.
sourceยงfn alloc_endpoint_in(
&mut self,
ep_type: EndpointType,
max_packet_size: u16,
interval_ms: u8,
) -> Result<Self::EndpointIn, EndpointAllocError>
fn alloc_endpoint_in( &mut self, ep_type: EndpointType, max_packet_size: u16, interval_ms: u8, ) -> Result<Self::EndpointIn, EndpointAllocError>
Allocates an IN endpoint. Read more
sourceยงfn alloc_endpoint_out(
&mut self,
ep_type: EndpointType,
max_packet_size: u16,
interval_ms: u8,
) -> Result<Self::EndpointOut, EndpointAllocError>
fn alloc_endpoint_out( &mut self, ep_type: EndpointType, max_packet_size: u16, interval_ms: u8, ) -> Result<Self::EndpointOut, EndpointAllocError>
Allocates an OUT endpoint. Read more
Auto Trait Implementationsยง
impl<'d, T> Freeze for Driver<'d, T>
impl<'d, T> !RefUnwindSafe for Driver<'d, T>
impl<'d, T> Send for Driver<'d, T>where
T: Send,
impl<'d, T> Sync for Driver<'d, T>where
T: Sync,
impl<'d, T> Unpin for Driver<'d, T>
impl<'d, T> !UnwindSafe for Driver<'d, T>
Blanket Implementationsยง
sourceยงimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
sourceยงfn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more