feat(endpoint): add select endpoint method
This commit is contained in:
parent
6eb6cef6ee
commit
f44aa6459a
|
@ -71,6 +71,26 @@ impl<const L: usize> UsbDevice<L> {
|
|||
dpram_already_used: 0,
|
||||
}
|
||||
}
|
||||
pub fn select_endpoint(
|
||||
&mut self,
|
||||
cs: CriticalSection<'_>,
|
||||
endpoint_index: usize,
|
||||
) -> Result<(), UsbError> {
|
||||
let usb = self.usb.borrow(cs);
|
||||
let endpoint_index = endpoint_index as u8;
|
||||
|
||||
if endpoint_index > 6 {
|
||||
return Err(UsbError::InvalidEndpoint);
|
||||
}
|
||||
|
||||
usb.uenum.write(|w| w.bits(endpoint_index));
|
||||
|
||||
if usb.uenum.read().bits() != endpoint_index {
|
||||
return Err(UsbError::InvalidEndpoint);
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
impl<const L: usize> UsbBus for UsbDevice<L> {
|
||||
|
|
Loading…
Reference in New Issue