Tx

Struct Tx 

Source
pub struct Tx { /* private fields */ }
Expand description

AXI UARTLITE TX driver.

Can be created by super::AxiUartlite::splitting a regular AXI UARTLITE structure or by Self::stealing it unsafely.

Implementations§

Source§

impl Tx

Source

pub unsafe fn steal(base_addr: usize) -> Self

Steal the TX part of the UART Lite.

You should only use this if you can not use the regular super::AxiUartlite constructor and the super::AxiUartlite::split method.

This function assumes that the setup of the UART was already done. It can be used to create a TX handle inside an interrupt handler without having to use a critical_section::Mutex if the user can guarantee that the TX handle will only be used by the interrupt handler, or only interrupt specific API will be used.

§Safety

The same safey rules specified in super::AxiUartlite apply.

Source

pub fn write_fifo(&mut self, data: u8) -> Result<(), Infallible>

Write into the UART Lite.

Returns nb::Error::WouldBlock if the TX FIFO is full.

Source

pub fn reset_fifo(&mut self)

Reset the TX FIFO.

Source

pub fn write_fifo_unchecked(&mut self, data: u8)

Write into the FIFO without checking the FIFO fill status.

This can be useful to completely fill the FIFO if it is known to be empty.

Source

pub fn fifo_empty(&self) -> bool

Is the TX FIFO empty?

Source

pub fn fifo_full(&self) -> bool

Is the TX FIFO full?

Source

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

Fills the FIFO with user provided data until the user data is consumed or the FIFO is full.

Returns the amount of written data, which might be smaller than the buffer size.

Source

pub fn read_and_clear_last_error(&mut self) -> Option<RxErrors>

Read and clear the last recorded RX errors.

Trait Implementations§

Source§

impl ErrorType for Tx

Source§

type Error = Infallible

Error type
Source§

impl ErrorType for Tx

Source§

type Error = Infallible

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

impl Write for Tx

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 Tx

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

Auto Trait Implementations§

§

impl Freeze for Tx

§

impl RefUnwindSafe for Tx

§

impl Send for Tx

§

impl !Sync for Tx

§

impl Unpin for Tx

§

impl UnwindSafe for Tx

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.