embassy-stm32

Crates

git

Versions

stm32u585zi

Flavors

๐Ÿ“ฃ We want to hear from you! Fill the Rust Embedded 2024 micro-survey.

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>

source

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.
source

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.
source

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>

sourceยง

type EndpointOut = Endpoint<'d, Out>

Type of the OUT endpoints for this driver.
sourceยง

type EndpointIn = Endpoint<'d, In>

Type of the IN endpoints for this driver.
sourceยง

type ControlPipe = ControlPipe<'d>

Type of the control pipe for this driver.
sourceยง

type Bus = Bus<'d, T>

Type for bus control for this driver.
sourceยง

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>

Allocates an OUT endpoint. Read more
sourceยง

fn start(self, control_max_packet_size: u16) -> (Self::Bus, Self::ControlPipe)

Start operation of the USB device. 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> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

sourceยง

impl<T, U> Into<U> for T
where U: From<T>,

sourceยง

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

sourceยง

impl<T, U> TryFrom<U> for T
where U: Into<T>,

sourceยง

type Error = Infallible

The type returned in the event of a conversion error.
sourceยง

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
sourceยง

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

sourceยง

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
sourceยง

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.