embassy-usb

Crates

git

Versions

default

Flavors

embassy_usb

Struct UsbDevice

Source
pub struct UsbDevice<'d, D: Driver<'d>> { /* private fields */ }
Expand description

Main struct for the USB device stack.

Implementations§

Source§

impl<'d, D: Driver<'d>> UsbDevice<'d, D>

Source

pub fn buffer_usage(&self) -> UsbBufferReport

Returns a report of the consumed buffers

Useful for tuning buffer sizes for actual usage

Source

pub async fn run(&mut self) -> !

Runs the UsbDevice forever.

This future may leave the bus in an invalid state if it is dropped. After dropping the future, UsbDevice::disable() should be called before calling any other UsbDevice methods to fully reset the peripheral.

Source

pub async fn run_until_suspend(&mut self)

Runs the UsbDevice until the bus is suspended.

This future may leave the bus in an invalid state if it is dropped. After dropping the future, UsbDevice::disable() should be called before calling any other UsbDevice methods to fully reset the peripheral.

Source

pub async fn disable(&mut self)

Disables the USB peripheral.

Source

pub async fn wait_resume(&mut self)

Waits for a resume condition on the USB bus.

This future is cancel-safe.

Source

pub async fn remote_wakeup(&mut self) -> Result<(), RemoteWakeupError>

Initiates a device remote wakeup on the USB bus.

If the bus is not suspended or remote wakeup is not enabled, an error will be returned.

This future may leave the bus in an inconsistent state if dropped. After dropping the future, UsbDevice::disable() should be called before calling any other UsbDevice methods to fully reset the peripheral.

Auto Trait Implementations§

§

impl<'d, D> Freeze for UsbDevice<'d, D>
where <D as Driver<'d>>::ControlPipe: Freeze, <D as Driver<'d>>::Bus: Freeze,

§

impl<'d, D> !RefUnwindSafe for UsbDevice<'d, D>

§

impl<'d, D> !Send for UsbDevice<'d, D>

§

impl<'d, D> !Sync for UsbDevice<'d, D>

§

impl<'d, D> Unpin for UsbDevice<'d, D>
where <D as Driver<'d>>::ControlPipe: Unpin, <D as Driver<'d>>::Bus: Unpin,

§

impl<'d, D> !UnwindSafe for UsbDevice<'d, D>

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.