embassy-mcxa

Crates

git

Versions

mcx-a256

Flavors

LpuartTx

Struct LpuartTx 

Source
pub struct LpuartTx<'a, M: Mode> { /* private fields */ }
Expand description

Lpuart TX driver.

Implementations§

Source§

impl<'a> LpuartTx<'a, Blocking>

Source

pub fn new_blocking<T: Instance>( _inner: Peri<'a, T>, tx_pin: Peri<'a, impl TxPin<T>>, config: Config, ) -> Result<Self, Error>

Create a new blocking LPUART transmitter instance.

Any external pin will be placed into Disabled state upon Drop.

Source

pub fn new_blocking_with_cts<T: Instance>( _inner: Peri<'a, T>, tx_pin: Peri<'a, impl TxPin<T>>, cts_pin: Peri<'a, impl CtsPin<T>>, config: Config, ) -> Result<Self, Error>

Create a new blocking LPUART transmitter instance with CTS flow control.

Any external pin will be placed into Disabled state upon Drop.

Source

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

Write data to LPUART TX blocking execution until all data is sent.

Source

pub fn write_str_blocking(&mut self, buf: &str)

Source

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

Write data to LPUART TX without blocking.

Source

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

Flush LPUART TX blocking execution until all data has been transmitted.

Source

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

Flush LPUART TX.

Source§

impl<'a> LpuartTx<'a, Buffered>

Source

pub fn new<T: Instance>( _inner: Peri<'a, T>, tx_pin: Peri<'a, impl TxPin<T>>, _irq: impl Binding<T::Interrupt, BufferedInterruptHandler<T>> + 'a, tx_buffer: &'a mut [u8], config: Config, ) -> Result<Self, Error>

Create a new TX-only LPUART.

Any external pin will be placed into Disabled state upon Drop.

§SAFETY

You must NOT call core::mem::forget on LpuartTx if tx_buffer is not 'static. This will potentially send “garbage” data via the UART.

Source

pub fn new_with_cts<T: Instance>( _inner: Peri<'a, T>, tx_pin: Peri<'a, impl TxPin<T>>, cts_pin: Peri<'a, impl CtsPin<T>>, _irq: impl Binding<T::Interrupt, BufferedInterruptHandler<T>> + 'a, tx_buffer: &'a mut [u8], config: Config, ) -> Result<Self, Error>

Create a new TX-only buffered LPUART with CTS flow control.

Any external pin will be placed into Disabled state upon Drop.

§SAFETY

You must NOT call core::mem::forget on LpuartTx if tx_buffer is not 'static. This will potentially send “garbage” data via the UART.

Source

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

Write data asynchronously

Source

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

Flush the TX buffer and wait for transmission to complete

Source

pub fn try_write(&mut self, buf: &[u8]) -> usize

Try to write without blocking

May return 0 if the provided buf is zero, or there are no bytes available

Source§

impl<'a> LpuartTx<'a, Dma<'a>>

Source

pub fn new_async_with_dma<T: Instance>( _inner: Peri<'a, T>, tx_pin: Peri<'a, impl TxPin<T>>, tx_dma_ch: Peri<'a, impl Channel>, config: Config, ) -> Result<Self, Error>

Create a new LPUART TX driver with DMA support.

Any external pin will be placed into Disabled state upon Drop.

Source

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

Write data using DMA.

This configures the DMA channel for a memory-to-peripheral transfer and waits for completion asynchronously. Large buffers are automatically split into chunks that fit within the DMA transfer limit.

The DMA request source is automatically derived from the LPUART instance type.

§Safety

If the returned future is dropped before completion (e.g., due to a timeout), the DMA transfer is automatically aborted to prevent use-after-free.

§Arguments
  • buf - Data buffer to transmit
Source

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

Blocking write (fallback when DMA is not needed)

Source

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

Flush TX blocking

Trait Implementations§

Source§

impl<M: Mode> Drop for LpuartTx<'_, M>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl<M: Mode> ErrorType for LpuartTx<'_, M>

Source§

type Error = Error

Error type
Source§

impl<M: Mode> ErrorType for LpuartTx<'_, M>

Source§

type Error = Error

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

impl Write for LpuartTx<'_, Blocking>

Source§

fn write(&mut self, word: 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 Write for LpuartTx<'_, Blocking>

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 · Source§

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 · Source§

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 Write for LpuartTx<'_, 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 Write for LpuartTx<'_, Buffered>

Source§

async 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§

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

Flush this output stream, ensuring that all intermediately buffered contents reach their destination.
Source§

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

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

impl<'a> Write for LpuartTx<'a, Dma<'a>>

Source§

async 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§

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

Flush this output stream, ensuring that all intermediately buffered contents reach their destination.
Source§

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

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

impl Write<u8> for LpuartTx<'_, Blocking>

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 Write<u8> for LpuartTx<'_, Blocking>

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<'a, M> Freeze for LpuartTx<'a, M>
where M: Freeze,

§

impl<'a, M> !RefUnwindSafe for LpuartTx<'a, M>

§

impl<'a, M> Send for LpuartTx<'a, M>
where M: Send,

§

impl<'a, M> Sync for LpuartTx<'a, M>
where M: Sync,

§

impl<'a, M> Unpin for LpuartTx<'a, M>
where M: Unpin,

§

impl<'a, M> !UnwindSafe for LpuartTx<'a, 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> 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<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<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.