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

Serial transmitter

Implementations§

source§

impl<'d> UartTxDriver<'d>

source

pub fn new<UART: Uart>( uart: impl Peripheral<P = UART> + 'd, tx: impl Peripheral<P = impl OutputPin> + '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 transmitter

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 write(&mut self, bytes: &[u8]) -> Result<usize, EspError>

Write multiple bytes from a slice

source

pub fn write_nb(&self, bytes: &[u8]) -> Result<usize, EspError>

Write multiple bytes from a slice directly to the TX FIFO hardware. Returns the number of bytes written, where 0 would mean that the TX FIFO is full.

NOTE: In case the UART TX buffer is enabled, this method might have unpredictable results when used together with method write, as the latter will push the data to be sent to the TX buffer first.

To avoid this, always call wait_done after the last call to write and before calling this method.

source

pub fn wait_done(&self, timeout: TickType_t) -> Result<(), EspError>

Waits until the transmission is complete or until the specified timeout expires.

source

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

👎Deprecated since 0.41.3: Use UartTxDriver::wait_done instead

Waits until the transmission is complete.

source

pub fn port(&self) -> uart_port_t

source

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

Get count of remaining capacity in the transmit ring buffer

Trait Implementations§

source§

impl<'d> Drop for UartTxDriver<'d>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl<'d> ErrorType for UartTxDriver<'d>

§

type Error = SerialError

Error type
source§

impl<'d> ErrorType for UartTxDriver<'d>

§

type Error = EspIOError

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

impl<'d> Write for UartTxDriver<'d>

source§

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

Write a buffer into this writer, returning how many bytes were written. Read more
source§

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

Flush this output stream, blocking until all intermediately buffered contents reach their destination.
source§

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

Write an entire buffer into this writer. Read more
source§

fn write_fmt( &mut self, fmt: Arguments<'_> ) -> Result<(), WriteFmtError<Self::Error>>

Write a formatted string into this writer, returning any error encountered. Read more
source§

impl<'d> Write for UartTxDriver<'d>

source§

fn write_str(&mut self, s: &str) -> Result

Writes a string slice into this writer, returning whether the write succeeded. Read more
1.1.0§

fn write_char(&mut self, c: char) -> Result<(), Error>

Writes a [char] into this writer, returning whether the write succeeded. Read more
1.0.0§

fn write_fmt(&mut self, args: Arguments<'_>) -> Result<(), Error>

Glue for usage of the [write!] macro with implementors of this trait. Read more
source§

impl<'d> Write for UartTxDriver<'d>

source§

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

Ensures that none of the previously written words are still buffered.
source§

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

Writes a single word to the serial interface.
source§

impl<'d> Write<u8> for UartTxDriver<'d>

§

type Error = SerialError

Write error
source§

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

Ensures that none of the previously written words are still buffered
source§

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

Writes a single word to the serial interface

Auto Trait Implementations§

§

impl<'d> RefUnwindSafe for UartTxDriver<'d>

§

impl<'d> Send for UartTxDriver<'d>

§

impl<'d> Sync for UartTxDriver<'d>

§

impl<'d> Unpin for UartTxDriver<'d>

§

impl<'d> !UnwindSafe for UartTxDriver<'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.