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: Peri<'d, T>,
_irq: impl Binding<T::Interrupt, InterruptHandler<T>> + 'd,
dp: Peri<'d, impl DpPin<T>>,
dm: Peri<'d, impl DmPin<T>>,
ep_out_buffer: &'d mut [u8],
config: Config,
) -> Self
pub fn new_fs( _peri: Peri<'d, T>, _irq: impl Binding<T::Interrupt, InterruptHandler<T>> + 'd, dp: Peri<'d, impl DpPin<T>>, dm: Peri<'d, impl DmPin<T>>, 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_hs(
_peri: Peri<'d, T>,
_irq: impl Binding<T::Interrupt, InterruptHandler<T>> + 'd,
_dp: Peri<'d, impl DpPin<T>>,
_dm: Peri<'d, impl DmPin<T>>,
ep_out_buffer: &'d mut [u8],
config: Config,
) -> Self
pub fn new_hs( _peri: Peri<'d, T>, _irq: impl Binding<T::Interrupt, InterruptHandler<T>> + 'd, _dp: Peri<'d, impl DpPin<T>>, _dm: Peri<'d, impl DmPin<T>>, ep_out_buffer: &'d mut [u8], config: Config, ) -> Self
Initializes USB OTG peripheral with internal 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.
Sourcepub fn new_fs_ulpi(
_peri: Peri<'d, T>,
_irq: impl Binding<T::Interrupt, InterruptHandler<T>> + 'd,
ulpi_clk: Peri<'d, impl UlpiClkPin<T>>,
ulpi_dir: Peri<'d, impl UlpiDirPin<T>>,
ulpi_nxt: Peri<'d, impl UlpiNxtPin<T>>,
ulpi_stp: Peri<'d, impl UlpiStpPin<T>>,
ulpi_d0: Peri<'d, impl UlpiD0Pin<T>>,
ulpi_d1: Peri<'d, impl UlpiD1Pin<T>>,
ulpi_d2: Peri<'d, impl UlpiD2Pin<T>>,
ulpi_d3: Peri<'d, impl UlpiD3Pin<T>>,
ulpi_d4: Peri<'d, impl UlpiD4Pin<T>>,
ulpi_d5: Peri<'d, impl UlpiD5Pin<T>>,
ulpi_d6: Peri<'d, impl UlpiD6Pin<T>>,
ulpi_d7: Peri<'d, impl UlpiD7Pin<T>>,
ep_out_buffer: &'d mut [u8],
config: Config,
) -> Self
pub fn new_fs_ulpi( _peri: Peri<'d, T>, _irq: impl Binding<T::Interrupt, InterruptHandler<T>> + 'd, ulpi_clk: Peri<'d, impl UlpiClkPin<T>>, ulpi_dir: Peri<'d, impl UlpiDirPin<T>>, ulpi_nxt: Peri<'d, impl UlpiNxtPin<T>>, ulpi_stp: Peri<'d, impl UlpiStpPin<T>>, ulpi_d0: Peri<'d, impl UlpiD0Pin<T>>, ulpi_d1: Peri<'d, impl UlpiD1Pin<T>>, ulpi_d2: Peri<'d, impl UlpiD2Pin<T>>, ulpi_d3: Peri<'d, impl UlpiD3Pin<T>>, ulpi_d4: Peri<'d, impl UlpiD4Pin<T>>, ulpi_d5: Peri<'d, impl UlpiD5Pin<T>>, ulpi_d6: Peri<'d, impl UlpiD6Pin<T>>, ulpi_d7: Peri<'d, impl UlpiD7Pin<T>>, 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: Peri<'d, T>,
_irq: impl Binding<T::Interrupt, InterruptHandler<T>> + 'd,
ulpi_clk: Peri<'d, impl UlpiClkPin<T>>,
ulpi_dir: Peri<'d, impl UlpiDirPin<T>>,
ulpi_nxt: Peri<'d, impl UlpiNxtPin<T>>,
ulpi_stp: Peri<'d, impl UlpiStpPin<T>>,
ulpi_d0: Peri<'d, impl UlpiD0Pin<T>>,
ulpi_d1: Peri<'d, impl UlpiD1Pin<T>>,
ulpi_d2: Peri<'d, impl UlpiD2Pin<T>>,
ulpi_d3: Peri<'d, impl UlpiD3Pin<T>>,
ulpi_d4: Peri<'d, impl UlpiD4Pin<T>>,
ulpi_d5: Peri<'d, impl UlpiD5Pin<T>>,
ulpi_d6: Peri<'d, impl UlpiD6Pin<T>>,
ulpi_d7: Peri<'d, impl UlpiD7Pin<T>>,
ep_out_buffer: &'d mut [u8],
config: Config,
) -> Self
pub fn new_hs_ulpi( _peri: Peri<'d, T>, _irq: impl Binding<T::Interrupt, InterruptHandler<T>> + 'd, ulpi_clk: Peri<'d, impl UlpiClkPin<T>>, ulpi_dir: Peri<'d, impl UlpiDirPin<T>>, ulpi_nxt: Peri<'d, impl UlpiNxtPin<T>>, ulpi_stp: Peri<'d, impl UlpiStpPin<T>>, ulpi_d0: Peri<'d, impl UlpiD0Pin<T>>, ulpi_d1: Peri<'d, impl UlpiD1Pin<T>>, ulpi_d2: Peri<'d, impl UlpiD2Pin<T>>, ulpi_d3: Peri<'d, impl UlpiD3Pin<T>>, ulpi_d4: Peri<'d, impl UlpiD4Pin<T>>, ulpi_d5: Peri<'d, impl UlpiD5Pin<T>>, ulpi_d6: Peri<'d, impl UlpiD6Pin<T>>, ulpi_d7: Peri<'d, impl UlpiD7Pin<T>>, 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