92 lines
3.0 KiB
C
92 lines
3.0 KiB
C
/**
|
|
* UART Generated Driver Interface Header File
|
|
*
|
|
* @file uart_drv_interface.h
|
|
*
|
|
* @defgroup uart_drv_interface UART_DRV_INTERFACE
|
|
*
|
|
* @brief This file contains API prototypes and data types of the Universal Asynchronous Receiver and Transmitter (UART) interface.
|
|
*
|
|
* @version UART Driver Version 3.0.2
|
|
*/
|
|
/*
|
|
© [2025] Microchip Technology Inc. and its subsidiaries.
|
|
|
|
Subject to your compliance with these terms, you may use Microchip
|
|
software and any derivatives exclusively with Microchip products.
|
|
You are responsible for complying with 3rd party license terms
|
|
applicable to your use of 3rd party software (including open source
|
|
software) that may accompany Microchip software. SOFTWARE IS ?AS IS.?
|
|
NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS
|
|
SOFTWARE, INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT,
|
|
MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT
|
|
WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,
|
|
INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY
|
|
KIND WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF
|
|
MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE
|
|
FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP?S
|
|
TOTAL LIABILITY ON ALL CLAIMS RELATED TO THE SOFTWARE WILL NOT
|
|
EXCEED AMOUNT OF FEES, IF ANY, YOU PAID DIRECTLY TO MICROCHIP FOR
|
|
THIS SOFTWARE.
|
|
*/
|
|
|
|
#ifndef UART_DRV_INTERFACE_H
|
|
#define UART_DRV_INTERFACE_H
|
|
|
|
/**
|
|
Section: Included Files
|
|
*/
|
|
#include <stdbool.h>
|
|
#include <stdint.h>
|
|
#include <stddef.h>
|
|
#include "uart_types.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
|
|
/**
|
|
Section: Data Type Definitions
|
|
*/
|
|
|
|
/**
|
|
@ingroup UART
|
|
@struct uart_drv_interface_t
|
|
@brief Structure containing the function pointers of UART driver.
|
|
*/
|
|
typedef struct {
|
|
void (*Initialize)(void);
|
|
void (*Deinitialize)(void);
|
|
uint8_t (*Read)(void);
|
|
void (*Write)(uint8_t);
|
|
bool (*IsRxReady)(void);
|
|
bool (*IsTxReady)(void);
|
|
bool (*IsTxDone)(void);
|
|
void (*TransmitEnable)(void);
|
|
void (*TransmitDisable)(void);
|
|
void (*AutoBaudSet)(bool enable);
|
|
bool (*AutoBaudQuery)(void);
|
|
bool (*AutoBaudEventEnableGet)(void);
|
|
void (*BRGCountSet)(uint32_t brgValue);
|
|
uint32_t (*BRGCountGet)(void);
|
|
void (*BaudRateSet)(uint32_t baudRate);
|
|
uint32_t (*BaudRateGet)(void);
|
|
size_t (*ErrorGet)(void);
|
|
void (*TxCompleteCallbackRegister)(void (*CallbackHandler) (void));
|
|
void (*RxCompleteCallbackRegister)(void (*CallbackHandler) (void));
|
|
void (*TxCollisionCallbackRegister)(void (*CallbackHandler) (void));
|
|
void (*FramingErrorCallbackRegister)(void (*CallbackHandler) (void));
|
|
void (*OverrunErrorCallbackRegister)(void (*CallbackHandler) (void));
|
|
void (*ParityErrorCallbackRegister)(void (*CallbackHandler) (void));
|
|
void (*EventCallbackRegister)(void (*CallbackHandler) (void));
|
|
}uart_drv_interface_t;
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* UART_DRV_INTERFACE_H */
|
|
|