CMSIS-Driver_PIC32CZ-CA70  
Peripheral Library (PLIB) Documentation
 
Loading...
Searching...
No Matches
USART Interface

Driver API for USART (plib_usart0.h) More...

Macros

#define USART_ERROR_NONE   (0U)
 Error status when no error has occurred.
 
#define USART_ERROR_OVERRUN   (US_CSR_USART_OVRE_Msk)
 Error status when an overrun error has occurred.
 
#define USART_ERROR_PARITY   (US_CSR_USART_PARE_Msk)
 Error status when a parity error has occurred.
 
#define USART_ERROR_FRAMING   (US_CSR_USART_FRAME_Msk)
 Error status when a framing error has occurred.
 

Typedefs

typedef void(* USART_INTERRUPT_HANDLER) (void)
 Function pointer type for USART interrupt handlers.
 
typedef uint32_t USART_ERROR
 Type for representing USART error status.
 
typedef void(* USART_CALLBACK_HANDLER) (USART_EVENT event)
 Function pointer type for USART event callback handler.
 

Enumerations

enum  USART_HWREG_STATUS { USART_HWREG_STATUS_OK = 0 , USART_HWREG_STATUS_ERROR , USART_HWREG_STATUS_INVALID_PARAM , USART_HWREG_STATUS_BUSY }
 Status codes for USART hardware register operations. More...
 
enum  USART_EVENT { USART_EVENT_TX_READY = 0 , USART_EVENT_TX_COMPLETE , USART_EVENT_RX_READY , USART_EVENT_ERROR }
 USART interrupt event types. More...
 
enum  USART_DATA_SIZE {
  USART_DATA_SIZE_5_BIT = US_MR_USART_CHRL_5_BIT , USART_DATA_SIZE_6_BIT = US_MR_USART_CHRL_6_BIT , USART_DATA_SIZE_7_BIT = US_MR_USART_CHRL_7_BIT , USART_DATA_SIZE_8_BIT = US_MR_USART_CHRL_8_BIT ,
  USART_DATA_SIZE_9_BIT = US_MR_USART_MODE9_Msk
}
 USART character size selection. More...
 
enum  USART_PARITY_MODE {
  USART_PARITY_EVEN = US_MR_USART_PAR_EVEN , USART_PARITY_ODD = US_MR_USART_PAR_ODD , USART_PARITY_SPACE = US_MR_USART_PAR_SPACE , USART_PARITY_MARK = US_MR_USART_PAR_MARK ,
  USART_PARITY_NONE = US_MR_USART_PAR_NO , USART_PARITY_MULTIDROP = US_MR_USART_PAR_MULTIDROP
}
 USART parity mode selection. More...
 
enum  USART_STOP_BITS { USART_STOP_BITS_1 = US_MR_USART_NBSTOP_1_BIT , USART_STOP_BITS_1_5 = US_MR_USART_NBSTOP_1_5_BIT , USART_STOP_BITS_2 = US_MR_USART_NBSTOP_2_BIT }
 USART stop bits selection. More...
 
enum  USART_DATA_ORDER { USART_DATA_ORDER_LSB_FIRST = 0U , USART_DATA_ORDER_MSB_FIRST = US_MR_USART_MSBF_Msk }
 USART data order selection. More...
 
enum  USART_OPMODE { USART_OPMODE_MCK = US_MR_USART_USCLKS_MCK , USART_OPMODE_DIV = US_MR_USART_USCLKS_DIV , USART_OPMODE_PCK = US_MR_USART_USCLKS_PCK , USART_OPMODE_SCK = US_MR_USART_USCLKS_SCK }
 USART clock source selection. More...
 
enum  USART_COMM_MODE { USART_COMM_MODE_ASYNC = 0U , USART_COMM_MODE_SYNC = US_MR_USART_SYNC_Msk }
 USART communication mode selection. More...
 

Functions

void USART0_Enable (void)
 Enables the USART0 peripheral (receiver and transmitter).
 
void USART0_Disable (void)
 Disables the USART0 peripheral (receiver and transmitter).
 
void USART0_EnableReceiver (void)
 Enables the USART0 receiver.
 
void USART0_DisableReceiver (void)
 Disables the USART0 receiver.
 
void USART0_EnableTransmitter (void)
 Enables the USART0 transmitter.
 
void USART0_DisableTransmitter (void)
 Disables the USART0 transmitter.
 
void USART0_SetOperatingMode (USART_OPMODE mode)
 Sets the USART0 clock source.
 
void USART0_SetCommunicationMode (USART_COMM_MODE mode)
 Sets the USART0 communication mode.
 
void USART0_SetDataSize (USART_DATA_SIZE data_size)
 Sets the USART0 character size.
 
void USART0_SetParityMode (USART_PARITY_MODE parity)
 Sets the USART0 parity mode.
 
void USART0_SetStopBits (USART_STOP_BITS stop_bits)
 Sets the USART0 number of stop bits.
 
void USART0_SetDataOrder (USART_DATA_ORDER order)
 Sets the USART0 data order.
 
USART_HWREG_STATUS USART0_SetBaudrate (uint32_t baud, uint32_t clk_frequency)
 Sets the USART0 baud rate.
 
void USART0_EnableRxReadyInterrupt (void)
 Enables the USART0 receiver ready interrupt.
 
void USART0_DisableRxReadyInterrupt (void)
 Disables the USART0 receiver ready interrupt.
 
void USART0_EnableTxCompleteInterrupt (void)
 Enables the USART0 transmit complete interrupt.
 
void USART0_DisableTxCompleteInterrupt (void)
 Disables the USART0 transmit complete interrupt.
 
void USART0_EnableTxReadyInterrupt (void)
 Enables the USART0 transmitter ready interrupt.
 
void USART0_DisableTxReadyInterrupt (void)
 Disables the USART0 transmitter ready interrupt.
 
void USART0_EnableErrorInterrupt (void)
 Enables the USART0 error interrupt (overrun, framing, parity).
 
void USART0_DisableErrorInterrupt (void)
 Disables the USART0 error interrupt.
 
bool USART0_ReceiverIsReady (void)
 Checks if the USART0 receiver has data available.
 
bool USART0_TransmitterIsReady (void)
 Checks if the USART0 transmitter data register is empty.
 
bool USART0_TransmitIsComplete (void)
 Checks if the USART0 transmission is complete (shift register empty).
 
USART_ERROR USART0_GetError (void)
 Gets the current USART0 error status and clears it.
 
uint8_t USART0_Receive (void)
 Receives a byte of data from USART0.
 
void USART0_Send (uint8_t data)
 Sends a byte of data via USART0.
 
uint16_t USART0_Receive9Bit (void)
 Receives 9-bit data from USART0.
 
void USART0_Send9Bit (uint16_t data)
 Sends 9-bit data via USART0.
 
void USART0_SetCallbackHandler (USART_CALLBACK_HANDLER callback)
 Registers callback for USART0 interrupt events.
 
void USART0_ResetSoftware (void)
 Performs a software reset of USART0 (receiver, transmitter, and status).
 
void USART0_SetInterruptHandler (void)
 Assigns the interrupt handler for USART0.
 

Variables

volatile USART_INTERRUPT_HANDLER USART0_InterruptHandler
 Interrupt handler for USART0 peripheral.
 

Description

Driver API for USART (plib_usart0.h)

Macro Definition Documentation

◆ USART_ERROR_FRAMING

#define USART_ERROR_FRAMING   (US_CSR_USART_FRAME_Msk)

Error status when a framing error has occurred.

◆ USART_ERROR_NONE

#define USART_ERROR_NONE   (0U)

Error status when no error has occurred.

◆ USART_ERROR_OVERRUN

#define USART_ERROR_OVERRUN   (US_CSR_USART_OVRE_Msk)

Error status when an overrun error has occurred.

◆ USART_ERROR_PARITY

#define USART_ERROR_PARITY   (US_CSR_USART_PARE_Msk)

Error status when a parity error has occurred.

Typedef Documentation

◆ USART_CALLBACK_HANDLER

USART_CALLBACK_HANDLER

Function pointer type for USART event callback handler.

This typedef defines a callback function type that is called when a USART event occurs. The callback receives a single parameter indicating the event type.

Parameters
eventThe USART event that triggered the callback.
See also
USART_EVENT

◆ USART_ERROR

Type for representing USART error status.

◆ USART_INTERRUPT_HANDLER

USART_INTERRUPT_HANDLER

Function pointer type for USART interrupt handlers.

This typedef defines a function pointer for interrupt handlers associated with USART. The handler function must take no parameters and return void.

Enumeration Type Documentation

◆ USART_COMM_MODE

USART communication mode selection.

Enumerator
USART_COMM_MODE_ASYNC 

Asynchronous mode

USART_COMM_MODE_SYNC 

Synchronous mode

◆ USART_DATA_ORDER

USART data order selection.

Enumerator
USART_DATA_ORDER_LSB_FIRST 

LSB transmitted first

USART_DATA_ORDER_MSB_FIRST 

MSB transmitted first

◆ USART_DATA_SIZE

USART character size selection.

Enumerator
USART_DATA_SIZE_5_BIT 

5-bit data

USART_DATA_SIZE_6_BIT 

6-bit data

USART_DATA_SIZE_7_BIT 

7-bit data

USART_DATA_SIZE_8_BIT 

8-bit data

USART_DATA_SIZE_9_BIT 

9-bit data

◆ USART_EVENT

USART interrupt event types.

Enumerator
USART_EVENT_TX_READY 

Transmitter ready (data register empty)

USART_EVENT_TX_COMPLETE 

Transmission complete (shift register empty)

USART_EVENT_RX_READY 

Receiver ready (data available)

USART_EVENT_ERROR 

Error occurred (overrun, framing, or parity)

◆ USART_HWREG_STATUS

Status codes for USART hardware register operations.

Enumerator
USART_HWREG_STATUS_OK 

Operation successful

USART_HWREG_STATUS_ERROR 

Generic error

USART_HWREG_STATUS_INVALID_PARAM 

Invalid parameter passed

USART_HWREG_STATUS_BUSY 

Hardware is busy

◆ USART_OPMODE

USART clock source selection.

Enumerator
USART_OPMODE_MCK 

Peripheral clock (MCK)

USART_OPMODE_DIV 

Peripheral clock divided by 8

USART_OPMODE_PCK 

PMC programmable clock (PCK)

USART_OPMODE_SCK 

External clock (SCK pin)

◆ USART_PARITY_MODE

USART parity mode selection.

Enumerator
USART_PARITY_EVEN 

Even parity

USART_PARITY_ODD 

Odd parity

USART_PARITY_SPACE 

Parity forced to 0 (Space)

USART_PARITY_MARK 

Parity forced to 1 (Mark)

USART_PARITY_NONE 

No parity

USART_PARITY_MULTIDROP 

Multidrop mode

◆ USART_STOP_BITS

USART stop bits selection.

Enumerator
USART_STOP_BITS_1 

1 stop bit

USART_STOP_BITS_1_5 

1.5 stop bits

USART_STOP_BITS_2 

2 stop bits

Function Documentation

◆ USART0_Disable()

void USART0_Disable ( void )

Disables the USART0 peripheral (receiver and transmitter).

Parameters
None.
Returns
None.

◆ USART0_DisableErrorInterrupt()

void USART0_DisableErrorInterrupt ( void )

Disables the USART0 error interrupt.

Parameters
None.
Returns
None.

◆ USART0_DisableReceiver()

void USART0_DisableReceiver ( void )

Disables the USART0 receiver.

Parameters
None.
Returns
None.

◆ USART0_DisableRxReadyInterrupt()

void USART0_DisableRxReadyInterrupt ( void )

Disables the USART0 receiver ready interrupt.

Parameters
None.
Returns
None.

◆ USART0_DisableTransmitter()

void USART0_DisableTransmitter ( void )

Disables the USART0 transmitter.

Parameters
None.
Returns
None.

◆ USART0_DisableTxCompleteInterrupt()

void USART0_DisableTxCompleteInterrupt ( void )

Disables the USART0 transmit complete interrupt.

Parameters
None.
Returns
None.

◆ USART0_DisableTxReadyInterrupt()

void USART0_DisableTxReadyInterrupt ( void )

Disables the USART0 transmitter ready interrupt.

Parameters
None.
Returns
None.

◆ USART0_Enable()

void USART0_Enable ( void )

Enables the USART0 peripheral (receiver and transmitter).

Parameters
None.
Returns
None.

◆ USART0_EnableErrorInterrupt()

void USART0_EnableErrorInterrupt ( void )

Enables the USART0 error interrupt (overrun, framing, parity).

Parameters
None.
Returns
None.

◆ USART0_EnableReceiver()

void USART0_EnableReceiver ( void )

Enables the USART0 receiver.

Parameters
None.
Returns
None.

◆ USART0_EnableRxReadyInterrupt()

void USART0_EnableRxReadyInterrupt ( void )

Enables the USART0 receiver ready interrupt.

Parameters
None.
Returns
None.

◆ USART0_EnableTransmitter()

void USART0_EnableTransmitter ( void )

Enables the USART0 transmitter.

Parameters
None.
Returns
None.

◆ USART0_EnableTxCompleteInterrupt()

void USART0_EnableTxCompleteInterrupt ( void )

Enables the USART0 transmit complete interrupt.

Parameters
None.
Returns
None.

◆ USART0_EnableTxReadyInterrupt()

void USART0_EnableTxReadyInterrupt ( void )

Enables the USART0 transmitter ready interrupt.

Parameters
None.
Returns
None.

◆ USART0_GetError()

USART_ERROR USART0_GetError ( void )

Gets the current USART0 error status and clears it.

Parameters
None.
Returns
The current error status (see USART_ERROR).

◆ USART0_Receive()

uint8_t USART0_Receive ( void )

Receives a byte of data from USART0.

Parameters
None.
Returns
Received byte.

◆ USART0_Receive9Bit()

uint16_t USART0_Receive9Bit ( void )

Receives 9-bit data from USART0.

Parameters
None.
Returns
Received 9-bit data.

◆ USART0_ReceiverIsReady()

bool USART0_ReceiverIsReady ( void )

Checks if the USART0 receiver has data available.

Parameters
None.
Returns
true if receiver is ready, false otherwise.

◆ USART0_ResetSoftware()

void USART0_ResetSoftware ( void )

Performs a software reset of USART0 (receiver, transmitter, and status).

Parameters
None.
Returns
None.

◆ USART0_Send()

void USART0_Send ( uint8_t data)

Sends a byte of data via USART0.

Parameters
data- Byte to send.
Returns
None.

◆ USART0_Send9Bit()

void USART0_Send9Bit ( uint16_t data)

Sends 9-bit data via USART0.

Parameters
data- 9-bit data to send.
Returns
None.

◆ USART0_SetBaudrate()

USART_HWREG_STATUS USART0_SetBaudrate ( uint32_t baud,
uint32_t clk_frequency )

Sets the USART0 baud rate.

Parameters
baud- Desired baud rate in bits per second.
clk_frequency- Source clock frequency in Hz.
Returns
Status of the operation (see USART_HWREG_STATUS).

◆ USART0_SetCallbackHandler()

void USART0_SetCallbackHandler ( USART_CALLBACK_HANDLER callback)

Registers callback for USART0 interrupt events.

Parameters
callback- Pointer to the callback function, or NULL to deregister.
Returns
None.

◆ USART0_SetCommunicationMode()

void USART0_SetCommunicationMode ( USART_COMM_MODE mode)

Sets the USART0 communication mode.

Parameters
mode- The desired communication mode (see USART_COMM_MODE).
Returns
None.

◆ USART0_SetDataOrder()

void USART0_SetDataOrder ( USART_DATA_ORDER order)

Sets the USART0 data order.

Parameters
order- The desired data order (see USART_DATA_ORDER).
Returns
None.

◆ USART0_SetDataSize()

void USART0_SetDataSize ( USART_DATA_SIZE data_size)

Sets the USART0 character size.

Parameters
data_size- The desired character size (see USART_DATA_SIZE).
Returns
None.

◆ USART0_SetInterruptHandler()

void USART0_SetInterruptHandler ( void )

Assigns the interrupt handler for USART0.

Note
Call this API to route USART0 interrupts to the USART mode handler.
Parameters
None.
Returns
None.

◆ USART0_SetOperatingMode()

void USART0_SetOperatingMode ( USART_OPMODE mode)

Sets the USART0 clock source.

Parameters
mode- The desired clock source (see USART_OPMODE).
Returns
None.

◆ USART0_SetParityMode()

void USART0_SetParityMode ( USART_PARITY_MODE parity)

Sets the USART0 parity mode.

Parameters
parity- The desired parity mode (see USART_PARITY_MODE).
Returns
None.

◆ USART0_SetStopBits()

void USART0_SetStopBits ( USART_STOP_BITS stop_bits)

Sets the USART0 number of stop bits.

Parameters
stop_bits- The desired stop bits (see USART_STOP_BITS).
Returns
None.

◆ USART0_TransmitIsComplete()

bool USART0_TransmitIsComplete ( void )

Checks if the USART0 transmission is complete (shift register empty).

Parameters
None.
Returns
true if transmission is complete, false otherwise.

◆ USART0_TransmitterIsReady()

bool USART0_TransmitterIsReady ( void )

Checks if the USART0 transmitter data register is empty.

Parameters
None.
Returns
true if transmitter is ready, false otherwise.

Variable Documentation

◆ USART0_InterruptHandler

volatile USART_INTERRUPT_HANDLER USART0_InterruptHandler
extern

Interrupt handler for USART0 peripheral.

This variable holds the function pointer to the current interrupt handler for the USART0 module. It should be assigned to a function that matches the USART_INTERRUPT_HANDLER signature. The variable is declared as volatile because it may be modified by interrupt service routines.