pub struct UsbBus { /* private fields */ }
Expand description
Usb bus
Implementations§
Source§impl UsbBus
impl UsbBus
Sourcepub fn new(
ctrl_reg: USBCTRL_REGS,
ctrl_dpram: USBCTRL_DPRAM,
pll: UsbClock,
force_vbus_detect_bit: bool,
resets: &mut RESETS,
) -> Self
pub fn new( ctrl_reg: USBCTRL_REGS, ctrl_dpram: USBCTRL_DPRAM, pll: UsbClock, force_vbus_detect_bit: bool, resets: &mut RESETS, ) -> Self
Create new usb bus struct and bring up usb as device.
Sourcepub fn remote_wakeup(&self)
pub fn remote_wakeup(&self)
Generates a resume request on the bus.
Sourcepub fn free(
self,
resets: &mut RESETS,
) -> (USBCTRL_REGS, USBCTRL_DPRAM, UsbClock)
pub fn free( self, resets: &mut RESETS, ) -> (USBCTRL_REGS, USBCTRL_DPRAM, UsbClock)
Stop and free the Usb resources
Trait Implementations§
Source§impl UsbBus for UsbBus
impl UsbBus for UsbBus
Source§const QUIRK_SET_ADDRESS_BEFORE_STATUS: bool = false
const QUIRK_SET_ADDRESS_BEFORE_STATUS: bool = false
Indicates that
set_device_address
must be called before accepting the corresponding
control transfer, not after. Read moreSource§fn alloc_ep(
&mut self,
ep_dir: UsbDirection,
ep_addr: Option<EndpointAddress>,
ep_type: EndpointType,
max_packet_size: u16,
_interval: u8,
) -> UsbResult<EndpointAddress>
fn alloc_ep( &mut self, ep_dir: UsbDirection, ep_addr: Option<EndpointAddress>, ep_type: EndpointType, max_packet_size: u16, _interval: u8, ) -> UsbResult<EndpointAddress>
Source§fn enable(&mut self)
fn enable(&mut self)
Enables and initializes the USB peripheral. Soon after enabling the device will be reset, so
there is no need to perform a USB reset in this method.
Source§fn reset(&self)
fn reset(&self)
Called when the host resets the device. This will be soon called after
poll
returns PollResult::Reset
. This method should
reset the state of all endpoints and peripheral flags back to a state suitable for
enumeration, as well as ensure that all endpoints previously allocated with alloc_ep are
initialized as specified.Source§fn set_device_address(&self, addr: u8)
fn set_device_address(&self, addr: u8)
Sets the device USB address to
addr
.Source§fn write(&self, ep_addr: EndpointAddress, buf: &[u8]) -> UsbResult<usize>
fn write(&self, ep_addr: EndpointAddress, buf: &[u8]) -> UsbResult<usize>
Writes a single packet of data to the specified endpoint and returns number of bytes
actually written. Read more
Source§fn read(&self, ep_addr: EndpointAddress, buf: &mut [u8]) -> UsbResult<usize>
fn read(&self, ep_addr: EndpointAddress, buf: &mut [u8]) -> UsbResult<usize>
Reads a single packet of data from the specified endpoint and returns the actual length of
the packet. Read more
Source§fn set_stalled(&self, ep_addr: EndpointAddress, stalled: bool)
fn set_stalled(&self, ep_addr: EndpointAddress, stalled: bool)
Sets or clears the STALL condition for an endpoint. If the endpoint is an OUT endpoint, it
should be prepared to receive data again.
Source§fn is_stalled(&self, ep_addr: EndpointAddress) -> bool
fn is_stalled(&self, ep_addr: EndpointAddress) -> bool
Gets whether the STALL condition is set for an endpoint.
Source§fn suspend(&self)
fn suspend(&self)
Causes the USB peripheral to enter USB suspend mode, lowering power consumption and
preparing to detect a USB wakeup event. This will be called after
poll
returns PollResult::Suspend
. The device will
continue be polled, and it shall return a value other than Suspend
from poll
when it no
longer detects the suspend condition.Source§fn resume(&self)
fn resume(&self)
Resumes from suspend mode. This may only be called after the peripheral has been previously
suspended.
Source§fn poll(&self) -> PollResult
fn poll(&self) -> PollResult
Gets information about events and incoming data. Usually called in a loop or from an
interrupt handler. See the
PollResult
struct for more information.Auto Trait Implementations§
impl !Freeze for UsbBus
impl !RefUnwindSafe for UsbBus
impl Send for UsbBus
impl Sync for UsbBus
impl Unpin for UsbBus
impl UnwindSafe for UsbBus
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
Source§impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more