embassy-rp

Crates

git

Versions

rp2040

Flavors

embassy_rp::uart

Struct UartTx

Source
pub struct UartTx<'d, T: Instance, M: Mode> { /* private fields */ }
Expand description

UART TX driver.

Implementations§

Source§

impl<'d, T: Instance, M: Mode> UartTx<'d, T, M>

Source

pub fn new( _uart: impl Peripheral<P = T> + 'd, tx: impl Peripheral<P = impl TxPin<T>> + 'd, tx_dma: impl Peripheral<P = impl Channel> + 'd, config: Config, ) -> Self

Create a new DMA-enabled UART which can only send data

Source

pub fn blocking_write(&mut self, buffer: &[u8]) -> Result<(), Error>

Transmit the provided buffer blocking execution until done.

Source

pub fn blocking_flush(&mut self) -> Result<(), Error>

Flush UART TX blocking execution until done.

Source

pub fn busy(&self) -> bool

Check if UART is busy transmitting.

Source

pub async fn send_break(&mut self, bits: u32)

Assert a break condition after waiting for the transmit buffers to empty, for the specified number of bit times. This condition must be asserted for at least two frame times to be effective, bits will adjusted according to frame size, parity, and stop bit settings to ensure this.

This method may block for a long amount of time since it has to wait for the transmit fifo to empty, which may take a while on slow links.

Source§

impl<'d, T: Instance> UartTx<'d, T, Blocking>

Source

pub fn new_blocking( _uart: impl Peripheral<P = T> + 'd, tx: impl Peripheral<P = impl TxPin<T>> + 'd, config: Config, ) -> Self

Create a new UART TX instance for blocking mode operations.

Source

pub fn into_buffered( self, irq: impl Binding<T::Interrupt, BufferedInterruptHandler<T>>, tx_buffer: &'d mut [u8], ) -> BufferedUartTx<'d, T>

Convert this uart TX instance into a buffered uart using the provided irq and transmit buffer.

Source§

impl<'d, T: Instance> UartTx<'d, T, Async>

Source

pub async fn write(&mut self, buffer: &[u8]) -> Result<(), Error>

Write to UART TX from the provided buffer using DMA.

Trait Implementations§

Source§

impl<'d, T: Instance> ErrorType for UartTx<'d, T, Blocking>

Source§

type Error = Error

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

impl<'d, T: Instance, M: Mode> ErrorType for UartTx<'d, T, M>

Source§

type Error = Error

Error type
Source§

impl<'d, T: Instance> Write for UartTx<'d, T, Blocking>

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, T: Instance, M: Mode> Write for UartTx<'d, T, M>

Source§

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

Writes a single word to the serial interface.
Source§

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

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

impl<'d, T: Instance, M: Mode> Write<u8> for UartTx<'d, T, M>

Source§

type Error = Error

The type of error that can occur when writing
Source§

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

Writes a slice, blocking until everything has been written Read more
Source§

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

Block until the serial interface has sent all buffered words
Source§

impl<'d, T: Instance, M: Mode> Write<u8> for UartTx<'d, T, M>

Source§

type Error = Error

Write error
Source§

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

Writes a single word to the serial interface
Source§

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

Ensures that none of the previously written words are still buffered

Auto Trait Implementations§

§

impl<'d, T, M> Freeze for UartTx<'d, T, M>

§

impl<'d, T, M> RefUnwindSafe for UartTx<'d, T, M>

§

impl<'d, T, M> Send for UartTx<'d, T, M>
where M: Send, T: Send,

§

impl<'d, T, M> Sync for UartTx<'d, T, M>
where M: Sync, T: Sync,

§

impl<'d, T, M> Unpin for UartTx<'d, T, M>
where M: Unpin,

§

impl<'d, T, M> !UnwindSafe for UartTx<'d, T, M>

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> Az for T

Source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
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<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

Source§

fn cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> CheckedAs for T

Source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

Source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
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<Src, Dst> LosslessTryInto<Dst> for Src
where Dst: LosslessTryFrom<Src>,

Source§

fn lossless_try_into(self) -> Option<Dst>

Performs the conversion.
Source§

impl<Src, Dst> LossyInto<Dst> for Src
where Dst: LossyFrom<Src>,

Source§

fn lossy_into(self) -> Dst

Performs the conversion.
Source§

impl<T> OverflowingAs for T

Source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

Source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> SaturatingAs for T

Source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

Source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
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.
Source§

impl<T> UnwrappedAs for T

Source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

Source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> WrappingAs for T

Source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

Source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.