103 lines
2.7 KiB
C
103 lines
2.7 KiB
C
/** @file sci.h
|
|
* @brief SCI Driver Definition File
|
|
* @date 29.May.2013
|
|
* @version 03.05.02
|
|
*
|
|
*/
|
|
|
|
/* (c) Texas Instruments 2009-2013, All rights reserved. */
|
|
|
|
|
|
#ifndef __SCI_H__
|
|
#define __SCI_H__
|
|
|
|
#include "reg_sci.h"
|
|
|
|
|
|
/** @enum sciIntFlags
|
|
* @brief Interrupt Flag Definitions
|
|
*
|
|
* Used with sciEnableNotification, sciDisableNotification
|
|
*/
|
|
enum sciIntFlags
|
|
{
|
|
SCI_FE_INT = 0x04000000U, /* framing error */
|
|
SCI_OE_INT = 0x02000000U, /* overrun error */
|
|
SCI_PE_INT = 0x01000000U, /* parity error */
|
|
SCI_RX_INT = 0x00000200U, /* receive buffer ready */
|
|
SCI_TX_INT = 0x00000100U, /* transmit buffer ready */
|
|
SCI_WAKE_INT = 0x00000002U, /* wakeup */
|
|
SCI_BREAK_INT = 0x00000001U /* break detect */
|
|
};
|
|
|
|
/** @def SCI_IDLE
|
|
* @brief Alias name for the SCI IDLE Flag
|
|
*
|
|
* This is an alias name for the SCI IDLE Flag.
|
|
*
|
|
*/
|
|
#define SCI_IDLE 0x00000004U
|
|
|
|
/** @struct sciBase
|
|
* @brief SCI Register Definition
|
|
*
|
|
* This structure is used to access the SCI module registers.
|
|
*/
|
|
/** @typedef sciBASE_t
|
|
* @brief SCI Register Frame Type Definition
|
|
*
|
|
* This type is used to access the SCI Registers.
|
|
*/
|
|
|
|
enum sciPinSelect
|
|
{
|
|
PIN_SCI_TX = 0U,
|
|
PIN_SCI_RX = 1U
|
|
};
|
|
|
|
/**
|
|
* @defgroup SCI SCI
|
|
* @brief Serial Communication Interface Module.
|
|
*
|
|
* The SCI module is a universal asynchronous receiver-transmitter that implements the standard nonreturn
|
|
* to zero format. The SCI can be used to communicate, for example, through an RS-232 port or over a K-line.
|
|
*
|
|
* Related Files
|
|
* - reg_sci.h
|
|
* - sci.h
|
|
* - sci.c
|
|
* @addtogroup SCI
|
|
* @{
|
|
*/
|
|
|
|
/* SCI Interface Functions */
|
|
void sciInit(void);
|
|
void sciSetFunctional(sciBASE_t *sci, uint32 port);
|
|
void sciSetBaudrate(sciBASE_t *sci, uint32 baud);
|
|
uint32 sciIsTxReady(sciBASE_t *sci);
|
|
void sciSendByte(sciBASE_t *sci, uint8 byte);
|
|
void sciSend(sciBASE_t *sci, uint32 length, uint8 * data);
|
|
uint32 sciIsRxReady(sciBASE_t *sci);
|
|
uint32 sciIsIdleDetected(sciBASE_t *sci);
|
|
uint32 sciRxError(sciBASE_t *sci);
|
|
uint32 sciReceiveByte(sciBASE_t *sci);
|
|
void sciReceive(sciBASE_t *sci, uint32 length, uint8 * data);
|
|
void sciEnableNotification(sciBASE_t *sci, uint32 flags);
|
|
void sciDisableNotification(sciBASE_t *sci, uint32 flags);
|
|
void sciEnableLoopback(sciBASE_t *sci, loopBackType_t Loopbacktype);
|
|
void sciDisableLoopback(sciBASE_t *sci);
|
|
|
|
/** @fn void sciNotification(sciBASE_t *sci, uint32 flags)
|
|
* @brief Interrupt callback
|
|
* @param[in] sci - sci module base address
|
|
* @param[in] flags - copy of error interrupt flags
|
|
*
|
|
* This is a callback that is provided by the application and is called upon
|
|
* an interrupt. The parameter passed to the callback is a copy of the
|
|
* interrupt flag register.
|
|
*/
|
|
void sciNotification(sciBASE_t *sci, uint32 flags);
|
|
|
|
/**@}*/
|
|
#endif
|