STM32L4Uart

TODO : Add LPUART?

Const

parityNone* = 0;
parityEven* = 8 + 2;
parityOdd* = 8 + 3;
stopBits1* = 0;
stopBits05* = 1;
stopBits2* = 2;
stopBits15* = 3;

Types

InitPar* = RECORD
        RXPinPort*, RXPinN*, RXPinAF*: INTEGER;
        TXPinPort*, TXPinN*, TXPinAF*: INTEGER;
        UCLK*: INTEGER;
        baud*: INTEGER;
        parity*: INTEGER;
        stopBits*: INTEGER;
        disableReceiver*: BOOLEAN
    END;
Bus* = RECORD (BusUart.Bus)
        inBuffer : InBuffer.RingBuffer;
        outBuffer : OutBuffer.RingBuffer;
        enableTCI, disableTCI: SET;
        CR1, ISR, RDR, TDR: ADDRESS;
    END;

Procedures

Init

Initialize U[s]art bus

PROCEDURE Init* (VAR b : Bus; par-: InitPar);

Bus.Any

Return number of characters available in read buffer

PROCEDURE (VAR this : Bus) Any*(): LENGTH;

Bus.TXDone

Return TRUE if we are not currently transmitting data

PROCEDURE (VAR this : Bus) TXDone*(): BOOLEAN;

Bus.ReadBytes

Read bytes into buffer with start and length.

PROCEDURE (VAR this: Bus) ReadBytes*(VAR buffer : ARRAY OF BYTE; start, length : LENGTH): LENGTH;

Bus.ReadChar

Read CHAR value. Return TRUE if success.

PROCEDURE (VAR this: Bus) ReadChar*(VAR value : CHAR): BOOLEAN;

Bus.WriteBytes

Write bytes from buffer with start and length.

PROCEDURE (VAR this: Bus) WriteBytes*(VAR buffer : ARRAY OF BYTE; start, length: LENGTH): LENGTH;

Bus.WriteChar

Write CHAR value. Return TRUE if success.

PROCEDURE (VAR this: Bus) WriteChar*(value : CHAR): BOOLEAN;