pub struct UartRxDriver<'d> { /* private fields */ }
Expand description

Serial receiver

Implementations§

source§

impl<'d> UartRxDriver<'d>

source

pub fn new<UART: Uart>( uart: impl Peripheral<P = UART> + 'd, rx: impl Peripheral<P = impl InputPin> + 'd, cts: Option<impl Peripheral<P = impl InputPin> + 'd>, rts: Option<impl Peripheral<P = impl OutputPin> + 'd>, config: &Config ) -> Result<Self, EspError>

Create a new serial receiver

source

pub fn event_queue(&self) -> Option<&Queue<UartEvent>>

Retrieves the event queue for this UART. Returns None if the config specified 0 for queue_size.

source

pub fn change_stop_bits(&self, stop_bits: StopBits) -> Result<&Self, EspError>

Change the number of stop bits

source

pub fn stop_bits(&self) -> Result<StopBits, EspError>

Returns the current number of stop bits

source

pub fn change_data_bits(&self, data_bits: DataBits) -> Result<&Self, EspError>

Change the number of data bits

source

pub fn data_bits(&self) -> Result<DataBits, EspError>

Return the current number of data bits

source

pub fn change_parity(&self, parity: Parity) -> Result<&Self, EspError>

Change the type of parity checking

source

pub fn parity(&self) -> Result<Parity, EspError>

Returns the current type of parity checking

source

pub fn change_baudrate<T: Into<Hertz> + Copy>( &self, baudrate: T ) -> Result<&Self, EspError>

Change the baudrate.

Will automatically select the clock source. When possible the reference clock (1MHz) will be used, because this is constant when the clock source/frequency changes. However if one of the clock frequencies is below 10MHz or if the baudrate is above the reference clock or if the baudrate cannot be set within 1.5% then use the APB clock.

source

pub fn baudrate(&self) -> Result<Hertz, EspError>

Returns the current baudrate

source

pub fn read(&self, buf: &mut [u8], delay: TickType_t) -> Result<usize, EspError>

Read multiple bytes into a slice; block until specified timeout

source

pub fn flush(&self) -> Result<(), EspError>

👎Deprecated since 0.41.3: Use UartRxDriver::clear instead

Clears the receive buffer.

source

pub fn clear(&self) -> Result<(), EspError>

source

pub fn port(&self) -> uart_port_t

source

pub fn count(&self) -> Result<usize, EspError>

Get count of remaining bytes in the receive ring buffer

Trait Implementations§

source§

impl<'d> Drop for UartRxDriver<'d>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl<'d> ErrorType for UartRxDriver<'d>

§

type Error = EspIOError

Error type of all the IO operations on this type.
source§

impl<'d> ErrorType for UartRxDriver<'d>

§

type Error = SerialError

Error type
source§

impl<'d> Read for UartRxDriver<'d>

source§

fn read(&mut self, buf: &mut [u8]) -> Result<usize, Self::Error>

Read some bytes from this source into the specified buffer, returning how many bytes were read. Read more
source§

fn read_exact( &mut self, buf: &mut [u8] ) -> Result<(), ReadExactError<Self::Error>>

Read the exact number of bytes required to fill buf. Read more
source§

impl<'d> Read for UartRxDriver<'d>

source§

fn read(&mut self) -> Result<u8, Self::Error>

Reads a single word from the serial interface
source§

impl<'d> Read<u8> for UartRxDriver<'d>

§

type Error = SerialError

Read error
source§

fn read(&mut self) -> Result<u8, Self::Error>

Reads a single word from the serial interface

Auto Trait Implementations§

§

impl<'d> RefUnwindSafe for UartRxDriver<'d>

§

impl<'d> Send for UartRxDriver<'d>

§

impl<'d> Sync for UartRxDriver<'d>

§

impl<'d> Unpin for UartRxDriver<'d>

§

impl<'d> !UnwindSafe for UartRxDriver<'d>

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

fn into(self) -> U

Calls U::from(self).

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

§

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

§

type Error = Infallible

The type returned in the event of a conversion error.
§

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

Performs the conversion.
§

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

§

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

The type returned in the event of a conversion error.
§

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

Performs the conversion.