SynopsysUart

Struct SynopsysUart 

Source
pub struct SynopsysUart<'a> { /* private fields */ }
Expand description

Driver for a Synopsys DesignWare DW_apb UART.

Implementations§

Source§

impl<'a> SynopsysUart<'a>

Source

pub const fn new(registers: UniqueMmioPointer<'a, Registers>) -> Self

Creates a new instance of the UART driver.

Source

pub fn configure(&mut self, baud_rate: u32, serial_clock: u32)

Configures the UART with the given baud rate, 8 data bits, no parity, and 1 stop bit.

Also enables the transmit and receive FIFOs.

This first waits until the UART is not busy, so may block.

Source

pub fn is_tx_fifo_full(&self) -> bool

Returns whether the TX FIFO is currently full.

If this returns true, write_word will block.

Source

pub fn write_word(&mut self, byte: u8)

Writes a single byte to the UART.

This blocks until there is room in the transmit FIFO to write the byte, but doesn’t wait for the byte to be transmitted.

Source

pub fn flush(&self)

Blocks until all previously written bytes have been transmitted.

Source

pub fn is_rx_fifo_empty(&self) -> bool

Returns true if the RX FIFO is currently empty.

If this returns true then read_word will return None.

Source

pub fn read_word(&mut self) -> Result<Option<u8>, UartError>

Reads a single byte from the UART.

If no data is available to be read this will return Ok(None). If there is an error condition then it will be cleared and an error will be returned.

Trait Implementations§

Source§

impl ErrorType for SynopsysUart<'_>

Source§

type Error = UartError

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

impl Read for SynopsysUart<'_>

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 ReadReady for SynopsysUart<'_>

Source§

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

Get whether the reader is ready for immediately reading. Read more
Source§

impl Write for SynopsysUart<'_>

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 SynopsysUart<'_>

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 WriteReady for SynopsysUart<'_>

Source§

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

Get whether the writer is ready for immediately writing. Read more
Source§

impl Sync for SynopsysUart<'_>

Auto Trait Implementations§

§

impl<'a> Freeze for SynopsysUart<'a>

§

impl<'a> RefUnwindSafe for SynopsysUart<'a>

§

impl<'a> Send for SynopsysUart<'a>

§

impl<'a> Unpin for SynopsysUart<'a>

§

impl<'a> UnwindSafe for SynopsysUart<'a>

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.