mbed library sources. Supersedes mbed-src.

Fork of mbed by teralytic

Committer:
bogdanm
Date:
Thu Oct 01 15:25:22 2015 +0300
Revision:
0:9b334a45a8ff
Child:
144:ef7eb2e8f9f7
Initial commit on mbed-dev

Replaces mbed-src (now inactive)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bogdanm 0:9b334a45a8ff 1 /**
bogdanm 0:9b334a45a8ff 2 ******************************************************************************
bogdanm 0:9b334a45a8ff 3 * @file
bogdanm 0:9b334a45a8ff 4 * @author
bogdanm 0:9b334a45a8ff 5 * @version
bogdanm 0:9b334a45a8ff 6 * @date
bogdanm 0:9b334a45a8ff 7 * @brief This file contains all the functions prototypes for the UART
bogdanm 0:9b334a45a8ff 8 * firmware library.
bogdanm 0:9b334a45a8ff 9 ******************************************************************************
bogdanm 0:9b334a45a8ff 10 *
bogdanm 0:9b334a45a8ff 11 ******************************************************************************
bogdanm 0:9b334a45a8ff 12 */
bogdanm 0:9b334a45a8ff 13
bogdanm 0:9b334a45a8ff 14 /* Define to prevent recursive inclusion -------------------------------------*/
bogdanm 0:9b334a45a8ff 15 #ifndef __W7500X_UART_H
bogdanm 0:9b334a45a8ff 16 #define __W7500X_UART_H
bogdanm 0:9b334a45a8ff 17
bogdanm 0:9b334a45a8ff 18 #ifdef __cplusplus
bogdanm 0:9b334a45a8ff 19 extern "C" {
bogdanm 0:9b334a45a8ff 20 #endif
bogdanm 0:9b334a45a8ff 21
bogdanm 0:9b334a45a8ff 22 /* Includes ------------------------------------------------------------------*/
bogdanm 0:9b334a45a8ff 23 #include "W7500x.h"
bogdanm 0:9b334a45a8ff 24
bogdanm 0:9b334a45a8ff 25
bogdanm 0:9b334a45a8ff 26 /**
bogdanm 0:9b334a45a8ff 27 * @brief UART Init Structure definition
bogdanm 0:9b334a45a8ff 28 */
bogdanm 0:9b334a45a8ff 29
bogdanm 0:9b334a45a8ff 30 typedef struct
bogdanm 0:9b334a45a8ff 31 {
bogdanm 0:9b334a45a8ff 32 uint32_t UART_BaudRate;
bogdanm 0:9b334a45a8ff 33 uint16_t UART_WordLength;
bogdanm 0:9b334a45a8ff 34 uint16_t UART_StopBits;
bogdanm 0:9b334a45a8ff 35 uint16_t UART_Parity;
bogdanm 0:9b334a45a8ff 36 uint16_t UART_Mode;
bogdanm 0:9b334a45a8ff 37 uint16_t UART_HardwareFlowControl;
bogdanm 0:9b334a45a8ff 38 } UART_InitTypeDef;
bogdanm 0:9b334a45a8ff 39
bogdanm 0:9b334a45a8ff 40 /**
bogdanm 0:9b334a45a8ff 41 * @}
bogdanm 0:9b334a45a8ff 42 */
bogdanm 0:9b334a45a8ff 43
bogdanm 0:9b334a45a8ff 44
bogdanm 0:9b334a45a8ff 45 /** @defgroup UART_Exported_Constants
bogdanm 0:9b334a45a8ff 46 * @{
bogdanm 0:9b334a45a8ff 47 */
bogdanm 0:9b334a45a8ff 48
bogdanm 0:9b334a45a8ff 49 #define IS_UART_01_PERIPH(PERIPH) (((PERIPH) == UART0) || ((PERIPH) == UART1))
bogdanm 0:9b334a45a8ff 50 #define IS_UART_2_PERIPH(PERIPH) ((PERIPH) == UART2)
bogdanm 0:9b334a45a8ff 51
bogdanm 0:9b334a45a8ff 52 /**
bogdanm 0:9b334a45a8ff 53 * @}
bogdanm 0:9b334a45a8ff 54 */
bogdanm 0:9b334a45a8ff 55
bogdanm 0:9b334a45a8ff 56
bogdanm 0:9b334a45a8ff 57
bogdanm 0:9b334a45a8ff 58 /** @addtogroup UART_Word_Length
bogdanm 0:9b334a45a8ff 59 * @{
bogdanm 0:9b334a45a8ff 60 */
bogdanm 0:9b334a45a8ff 61
bogdanm 0:9b334a45a8ff 62 #define UART_WordLength_8b ((uint16_t)UART_LCR_H_WLEN(3))
bogdanm 0:9b334a45a8ff 63 #define UART_WordLength_7b ((uint16_t)UART_LCR_H_WLEN(2))
bogdanm 0:9b334a45a8ff 64 #define UART_WordLength_6b ((uint16_t)UART_LCR_H_WLEN(1))
bogdanm 0:9b334a45a8ff 65 #define UART_WordLength_5b ((uint16_t)UART_LCR_H_WLEN(0))
bogdanm 0:9b334a45a8ff 66 #define IS_UART_WORD_LENGTH(LENGTH) (((LENGTH) == UART_WordLength_8b) || \
bogdanm 0:9b334a45a8ff 67 ((LENGTH) == UART_WordLength_7b) || \
bogdanm 0:9b334a45a8ff 68 ((LENGTH) == UART_WordLength_6b) || \
bogdanm 0:9b334a45a8ff 69 ((LENGTH) == UART_WordLength_5b) )
bogdanm 0:9b334a45a8ff 70 /**
bogdanm 0:9b334a45a8ff 71 * @}
bogdanm 0:9b334a45a8ff 72 */
bogdanm 0:9b334a45a8ff 73
bogdanm 0:9b334a45a8ff 74
bogdanm 0:9b334a45a8ff 75 /** @addtogroup UART_Parity
bogdanm 0:9b334a45a8ff 76 * @{
bogdanm 0:9b334a45a8ff 77 */
bogdanm 0:9b334a45a8ff 78
bogdanm 0:9b334a45a8ff 79 #define UART_Parity_No ((uint16_t)0x0000)
bogdanm 0:9b334a45a8ff 80 #define UART_Parity_Even ((uint16_t)(UART_LCR_H_PEN | UART_LCR_H_EPS))
bogdanm 0:9b334a45a8ff 81 #define UART_Parity_Odd ((uint16_t)(UART_LCR_H_PEN))
bogdanm 0:9b334a45a8ff 82 #define IS_UART_PARITY(PARITY) (((PARITY) == UART_Parity_No) || \
bogdanm 0:9b334a45a8ff 83 ((PARITY) == UART_Parity_Even) || \
bogdanm 0:9b334a45a8ff 84 ((PARITY) == UART_Parity_Odd))
bogdanm 0:9b334a45a8ff 85
bogdanm 0:9b334a45a8ff 86 /**
bogdanm 0:9b334a45a8ff 87 * @}
bogdanm 0:9b334a45a8ff 88 */
bogdanm 0:9b334a45a8ff 89
bogdanm 0:9b334a45a8ff 90
bogdanm 0:9b334a45a8ff 91 /** @addtogroup UART_Stop_Bits
bogdanm 0:9b334a45a8ff 92 * @{
bogdanm 0:9b334a45a8ff 93 */
bogdanm 0:9b334a45a8ff 94
bogdanm 0:9b334a45a8ff 95 #define UART_StopBits_1 ((uint16_t)0x0000)
bogdanm 0:9b334a45a8ff 96 #define UART_StopBits_2 ((uint16_t)(UART_LCR_H_STP2))
bogdanm 0:9b334a45a8ff 97 #define IS_UART_STOPBITS(STOPBITS) (((STOPBITS) == UART_StopBits_1) || \
bogdanm 0:9b334a45a8ff 98 ((STOPBITS) == UART_StopBits_2))
bogdanm 0:9b334a45a8ff 99 /**
bogdanm 0:9b334a45a8ff 100 * @}
bogdanm 0:9b334a45a8ff 101 */
bogdanm 0:9b334a45a8ff 102
bogdanm 0:9b334a45a8ff 103
bogdanm 0:9b334a45a8ff 104 /** @addtogroup UART_Mode
bogdanm 0:9b334a45a8ff 105 * @{
bogdanm 0:9b334a45a8ff 106 */
bogdanm 0:9b334a45a8ff 107
bogdanm 0:9b334a45a8ff 108 #define UART_Mode_Rx ((uint16_t)(UART_CR_RXE))
bogdanm 0:9b334a45a8ff 109 #define UART_Mode_Tx ((uint16_t)(UART_CR_TXE))
bogdanm 0:9b334a45a8ff 110 #define IS_UART_MODE(MODE) (((MODE) == UART_Mode_Rx) || \
bogdanm 0:9b334a45a8ff 111 ((MODE) == UART_Mode_Tx))
bogdanm 0:9b334a45a8ff 112
bogdanm 0:9b334a45a8ff 113 /**
bogdanm 0:9b334a45a8ff 114 * @}
bogdanm 0:9b334a45a8ff 115 */
bogdanm 0:9b334a45a8ff 116
bogdanm 0:9b334a45a8ff 117
bogdanm 0:9b334a45a8ff 118 /** @addtogroup UART_Hardware_Flow_Control
bogdanm 0:9b334a45a8ff 119 * @{
bogdanm 0:9b334a45a8ff 120 */
bogdanm 0:9b334a45a8ff 121
bogdanm 0:9b334a45a8ff 122 #define UART_HardwareFlowControl_None ((uint16_t)0x0000)
bogdanm 0:9b334a45a8ff 123 #define UART_HardwareFlowControl_RTS ((uint16_t)UART_CR_RTSEn)
bogdanm 0:9b334a45a8ff 124 #define UART_HardwareFlowControl_CTS ((uint16_t)UART_CR_CTSEn)
bogdanm 0:9b334a45a8ff 125 #define UART_HardwareFlowControl_RTS_CTS ((uint16_t)(UART_CR_RTSEn | UART_CR_CTSEn))
bogdanm 0:9b334a45a8ff 126 #define IS_UART_HARDWARE_FLOW_CONTROL(CONTROL) \
bogdanm 0:9b334a45a8ff 127 (((CONTROL) == UART_HardwareFlowControl_None) || \
bogdanm 0:9b334a45a8ff 128 ((CONTROL) == UART_HardwareFlowControl_RTS) || \
bogdanm 0:9b334a45a8ff 129 ((CONTROL) == UART_HardwareFlowControl_CTS) || \
bogdanm 0:9b334a45a8ff 130 ((CONTROL) == UART_HardwareFlowControl_RTS_CTS))
bogdanm 0:9b334a45a8ff 131 /**
bogdanm 0:9b334a45a8ff 132 * @}
bogdanm 0:9b334a45a8ff 133 */
bogdanm 0:9b334a45a8ff 134
bogdanm 0:9b334a45a8ff 135
bogdanm 0:9b334a45a8ff 136 /** @addtogroup UART_Receive Status
bogdanm 0:9b334a45a8ff 137 * @{
bogdanm 0:9b334a45a8ff 138 */
bogdanm 0:9b334a45a8ff 139
bogdanm 0:9b334a45a8ff 140 #define UART_RECV_STATUS_OE ((uint16_t)0x01UL << 3) /*!< Overrun error */
bogdanm 0:9b334a45a8ff 141 #define UART_RECV_STATUS_BE ((uint16_t)0x01UL << 2) /*!< Break error */
bogdanm 0:9b334a45a8ff 142 #define UART_RECV_STATUS_PE ((uint16_t)0x01UL << 1) /*!< Parity error */
bogdanm 0:9b334a45a8ff 143 #define UART_RECV_STATUS_FE ((uint16_t)0x01UL << 0) /*!< Framing error */
bogdanm 0:9b334a45a8ff 144 #define IS_UART_RECV_STATUS(FLAG) (((FLAG) == UART_RECV_STATUS_OE) || ((FLAG) == UART_RECV_STATUS_BE) || \
bogdanm 0:9b334a45a8ff 145 ((FLAG) == UART_RECV_STATUS_PE) || ((FLAG) == UART_RECV_STATUS_FE))
bogdanm 0:9b334a45a8ff 146 /**
bogdanm 0:9b334a45a8ff 147 * @}
bogdanm 0:9b334a45a8ff 148 */
bogdanm 0:9b334a45a8ff 149
bogdanm 0:9b334a45a8ff 150
bogdanm 0:9b334a45a8ff 151
bogdanm 0:9b334a45a8ff 152 /** @addtogroup UART_Flags
bogdanm 0:9b334a45a8ff 153 * @{
bogdanm 0:9b334a45a8ff 154 */
bogdanm 0:9b334a45a8ff 155
bogdanm 0:9b334a45a8ff 156 #define UART_FLAG_RI ((uint16_t)0x01UL << 8) /*!< Ring indicator */
bogdanm 0:9b334a45a8ff 157 #define UART_FLAG_TXFE ((uint16_t)0x01UL << 7) /*!< Transmit FIFO empty */
bogdanm 0:9b334a45a8ff 158 #define UART_FLAG_RXFF ((uint16_t)0x01UL << 6) /*!< Receive FIFO full */
bogdanm 0:9b334a45a8ff 159 #define UART_FLAG_TXFF ((uint16_t)0x01UL << 5) /*!< Transmit FIFO full */
bogdanm 0:9b334a45a8ff 160 #define UART_FLAG_RXFE ((uint16_t)0x01UL << 4) /*!< Receive FIFO empty */
bogdanm 0:9b334a45a8ff 161 #define UART_FLAG_BUSY ((uint16_t)0x01UL << 3) /*!< UART busy */
bogdanm 0:9b334a45a8ff 162 #define UART_FLAG_DCD ((uint16_t)0x01UL << 2) /*!< Data carrier detect */
bogdanm 0:9b334a45a8ff 163 #define UART_FLAG_DSR ((uint16_t)0x01UL << 1) /*!< Data set ready */
bogdanm 0:9b334a45a8ff 164 #define UART_FLAG_CTS ((uint16_t)0x01UL << 0) /*!< Clear to send */
bogdanm 0:9b334a45a8ff 165 #define IS_UART_FLAG(FLAG) (((FLAG) == UART_FLAG_RI) || ((FLAG) == UART_FLAG_TXFE) || \
bogdanm 0:9b334a45a8ff 166 ((FLAG) == UART_FLAG_RXFF) || ((FLAG) == UART_FLAG_TXFF) || \
bogdanm 0:9b334a45a8ff 167 ((FLAG) == UART_FLAG_RXFE) || ((FLAG) == UART_FLAG_BUSY) || \
bogdanm 0:9b334a45a8ff 168 ((FLAG) == UART_FLAG_DCD) || ((FLAG) == UART_FLAG_DSR) || \
bogdanm 0:9b334a45a8ff 169 ((FLAG) == UART_FLAG_CTS))
bogdanm 0:9b334a45a8ff 170
bogdanm 0:9b334a45a8ff 171 /**
bogdanm 0:9b334a45a8ff 172 * @}
bogdanm 0:9b334a45a8ff 173 */
bogdanm 0:9b334a45a8ff 174
bogdanm 0:9b334a45a8ff 175
bogdanm 0:9b334a45a8ff 176 /** @addtogroup UART_IT_Flags
bogdanm 0:9b334a45a8ff 177 * @{
bogdanm 0:9b334a45a8ff 178 */
bogdanm 0:9b334a45a8ff 179
bogdanm 0:9b334a45a8ff 180 #define UART_IT_FLAG_OEI ((uint16_t)0x01UL << 10) /*!< Overrun error interrupt */
bogdanm 0:9b334a45a8ff 181 #define UART_IT_FLAG_BEI ((uint16_t)0x01UL << 9) /*!< Break error interrupt */
bogdanm 0:9b334a45a8ff 182 #define UART_IT_FLAG_PEI ((uint16_t)0x01UL << 8) /*!< Parity error interrupt */
bogdanm 0:9b334a45a8ff 183 #define UART_IT_FLAG_FEI ((uint16_t)0x01UL << 7) /*!< Framing error interrupt */
bogdanm 0:9b334a45a8ff 184 #define UART_IT_FLAG_RTI ((uint16_t)0x01UL << 6) /*!< Receive timeout interrupt */
bogdanm 0:9b334a45a8ff 185 #define UART_IT_FLAG_TXI ((uint16_t)0x01UL << 5) /*!< Transmit interrupt */
bogdanm 0:9b334a45a8ff 186 #define UART_IT_FLAG_RXI ((uint16_t)0x01UL << 4) /*!< Receive interrupt */
bogdanm 0:9b334a45a8ff 187 #define UART_IT_FLAG_DSRMI ((uint16_t)0x01UL << 3) /*!< UARTDSR modem interrupt */
bogdanm 0:9b334a45a8ff 188 #define UART_IT_FLAG_DCDMI ((uint16_t)0x01UL << 2) /*!< UARTDCD modem interrupt */
bogdanm 0:9b334a45a8ff 189 #define UART_IT_FLAG_CTSMI ((uint16_t)0x01UL << 1) /*!< UARTCTS modem interrupt */
bogdanm 0:9b334a45a8ff 190 #define UART_IT_FLAG_RIMI ((uint16_t)0x01UL << 0) /*!< UARTRI modem interrupt */
bogdanm 0:9b334a45a8ff 191 #define IS_UART_IT_FLAG(FLAG) (((FLAG) == UART_IT_FLAG_OEI) || ((FLAG) == UART_IT_FLAG_BEI) || \
bogdanm 0:9b334a45a8ff 192 ((FLAG) == UART_IT_FLAG_PEI) || ((FLAG) == UART_IT_FLAG_FEI) || \
bogdanm 0:9b334a45a8ff 193 ((FLAG) == UART_IT_FLAG_RTI) || ((FLAG) == UART_IT_FLAG_TXI) || \
bogdanm 0:9b334a45a8ff 194 ((FLAG) == UART_IT_FLAG_RXI) || ((FLAG) == UART_IT_FLAG_DSRMI) || \
bogdanm 0:9b334a45a8ff 195 ((FLAG) == UART_IT_FLAG_DCDMI)|| ((FLAG) == UART_IT_FLAG_CTSMI) || \
bogdanm 0:9b334a45a8ff 196 ((FLAG) == UART_IT_FLAG_RIMI))
bogdanm 0:9b334a45a8ff 197 /**
bogdanm 0:9b334a45a8ff 198 * @}
bogdanm 0:9b334a45a8ff 199 */
bogdanm 0:9b334a45a8ff 200 /** @addtogroup UART_FIFO_Level Select
bogdanm 0:9b334a45a8ff 201 * @{
bogdanm 0:9b334a45a8ff 202 */
bogdanm 0:9b334a45a8ff 203
bogdanm 0:9b334a45a8ff 204 #define UART_IFLS_RXIFLSEL7_8 ((uint16_t)(UART_IFLS_RXIFLSEL(4)))
bogdanm 0:9b334a45a8ff 205 #define UART_IFLS_RXIFLSEL3_4 ((uint16_t)(UART_IFLS_RXIFLSEL(3)))
bogdanm 0:9b334a45a8ff 206 #define UART_IFLS_RXIFLSEL1_2 ((uint16_t)(UART_IFLS_RXIFLSEL(2)))
bogdanm 0:9b334a45a8ff 207 #define UART_IFLS_RXIFLSEL1_4 ((uint16_t)(UART_IFLS_RXIFLSEL(1)))
bogdanm 0:9b334a45a8ff 208 #define UART_IFLS_RXIFLSEL1_8 ((uint16_t)(UART_IFLS_RXIFLSEL(0)))
bogdanm 0:9b334a45a8ff 209 #define UART_IFLS_TXIFLSEL7_8 ((uint16_t)(UART_IFLS_TXIFLSEL(4)))
bogdanm 0:9b334a45a8ff 210 #define UART_IFLS_TXIFLSEL3_4 ((uint16_t)(UART_IFLS_TXIFLSEL(3)))
bogdanm 0:9b334a45a8ff 211 #define UART_IFLS_TXIFLSEL1_2 ((uint16_t)(UART_IFLS_TXIFLSEL(2)))
bogdanm 0:9b334a45a8ff 212 #define UART_IFLS_TXIFLSEL1_4 ((uint16_t)(UART_IFLS_TXIFLSEL(1)))
bogdanm 0:9b334a45a8ff 213 #define UART_IFLS_TXIFLSEL1_8 ((uint16_t)(UART_IFLS_TXIFLSEL(0)))
bogdanm 0:9b334a45a8ff 214
bogdanm 0:9b334a45a8ff 215 #define IS_UART_FIFO_Level(FLAG) (((FLAG) == UART_IFLS_RXIFLSEL7_8) || ((FLAG) == UART_IFLS_RXIFLSEL3_4)|| \
bogdanm 0:9b334a45a8ff 216 ((FLAG) == UART_IFLS_RXIFLSEL1_2)|| ((FLAG) == UART_IFLS_RXIFLSEL1_4)|| ((FLAG) == UART_IFLS_RXIFLSEL1_8)||\
bogdanm 0:9b334a45a8ff 217 ((FLAG) == UART_IFLS_TXIFLSEL7_8)|| ((FLAG) == UART_IFLS_TXIFLSEL3_4)|| \
bogdanm 0:9b334a45a8ff 218 ((FLAG) == UART_IFLS_TXIFLSEL1_2)|| ((FLAG) == UART_IFLS_TXIFLSEL1_4)||((FLAG) == UART_IFLS_TXIFLSEL1_8))
bogdanm 0:9b334a45a8ff 219
bogdanm 0:9b334a45a8ff 220 /**
bogdanm 0:9b334a45a8ff 221 * @}
bogdanm 0:9b334a45a8ff 222 */
bogdanm 0:9b334a45a8ff 223
bogdanm 0:9b334a45a8ff 224 /** @addtogroup S_UART_Flags
bogdanm 0:9b334a45a8ff 225 * @{
bogdanm 0:9b334a45a8ff 226 */
bogdanm 0:9b334a45a8ff 227 #define S_UART_STATE_RXO ((uint16_t)0x01UL << 3) /*!< RX buffer Overrun */
bogdanm 0:9b334a45a8ff 228 #define S_UART_STATE_TXO ((uint16_t)0x01UL << 2) /*!< TX buffer Overrun */
bogdanm 0:9b334a45a8ff 229 #define S_UART_STATE_RXF ((uint16_t)0x01UL << 1) /*!< RX buffer Full */
bogdanm 0:9b334a45a8ff 230 #define S_UART_STATE_TXF ((uint16_t)0x01UL << 0) /*!< TX buffer Full */
bogdanm 0:9b334a45a8ff 231 #define IS_S_UART_STATE(FLAG) (((FLAG) == S_UART_STATE_RXO) || ((FLAG) == S_UART_STATE_TXO) || \
bogdanm 0:9b334a45a8ff 232 ((FLAG) == S_UART_STATE_RXF) || ((FLAG) == S_UART_STATE_TXF))
bogdanm 0:9b334a45a8ff 233 /**
bogdanm 0:9b334a45a8ff 234 * @}
bogdanm 0:9b334a45a8ff 235 */
bogdanm 0:9b334a45a8ff 236
bogdanm 0:9b334a45a8ff 237
bogdanm 0:9b334a45a8ff 238 /** @addtogroup S_UART_CTRL_Flags
bogdanm 0:9b334a45a8ff 239 * @{
bogdanm 0:9b334a45a8ff 240 */
bogdanm 0:9b334a45a8ff 241
bogdanm 0:9b334a45a8ff 242 #define S_UART_CTRL_RXOI ((uint16_t)0x01UL << 5) /*!< RX overrun interrupt */
bogdanm 0:9b334a45a8ff 243 #define S_UART_CTRL_TXOI ((uint16_t)0x01UL << 4) /*!< TX overrun interrupt */
bogdanm 0:9b334a45a8ff 244 #define S_UART_CTRL_RXI ((uint16_t)0x01UL << 3) /*!< RX interrupt */
bogdanm 0:9b334a45a8ff 245 #define S_UART_CTRL_TXI ((uint16_t)0x01UL << 2) /*!< TX interrupt */
bogdanm 0:9b334a45a8ff 246 #define S_UART_CTRL_RX ((uint16_t)0x01UL << 1) /*!< RX */
bogdanm 0:9b334a45a8ff 247 #define S_UART_CTRL_TX ((uint16_t)0x01UL << 0) /*!< TX */
bogdanm 0:9b334a45a8ff 248
bogdanm 0:9b334a45a8ff 249
bogdanm 0:9b334a45a8ff 250 #define IS_S_UART_CTRL_FLAG(FLAG) (((FLAG) == S_UART_CTRL_FLAG_RXOI) || ((FLAG) == S_UART_CTRL_FLAG_TXOI) || \
bogdanm 0:9b334a45a8ff 251 ((FLAG) == S_UART_CTRL_FLAG_RXI) || ((FLAG) == S_UART_CTRL_FLAG_TXI) || \
bogdanm 0:9b334a45a8ff 252 ((FLAG) == S_UART_CTRL_FLAG_RX) || ((FLAG) == S_UART_CTRL_FLAG_TX))
bogdanm 0:9b334a45a8ff 253 /**
bogdanm 0:9b334a45a8ff 254 * @}
bogdanm 0:9b334a45a8ff 255 */
bogdanm 0:9b334a45a8ff 256
bogdanm 0:9b334a45a8ff 257
bogdanm 0:9b334a45a8ff 258 /** @addtogroup S_UART_IT_Flags
bogdanm 0:9b334a45a8ff 259 * @{
bogdanm 0:9b334a45a8ff 260 */
bogdanm 0:9b334a45a8ff 261
bogdanm 0:9b334a45a8ff 262 #define S_UART_INTSTATUS_RXOI ((uint16_t)0x01UL << 3) /*!< RX overrun interrupt */
bogdanm 0:9b334a45a8ff 263 #define S_UART_INTSTATUS_TXOI ((uint16_t)0x01UL << 2) /*!< TX overrun interrupt */
bogdanm 0:9b334a45a8ff 264 #define S_UART_INTSTATUS_RXI ((uint16_t)0x01UL << 1) /*!< RX interrupt */
bogdanm 0:9b334a45a8ff 265 #define S_UART_INTSTATUS_TXI ((uint16_t)0x01UL << 0) /*!< TX interrupt */
bogdanm 0:9b334a45a8ff 266 #define IS_S_UART_INTSTATUS(FLAG) (((FLAG) == S_UART_INTSTATUS_RXOI) || ((FLAG) == S_UART_INTSTATUS_TXOI) || \
bogdanm 0:9b334a45a8ff 267 ((FLAG) == S_UART_INTSTATUS_RXI) || ((FLAG) == S_UART_INTSTATUS_TXI))
bogdanm 0:9b334a45a8ff 268 /**
bogdanm 0:9b334a45a8ff 269 * @}
bogdanm 0:9b334a45a8ff 270 */
bogdanm 0:9b334a45a8ff 271
bogdanm 0:9b334a45a8ff 272
bogdanm 0:9b334a45a8ff 273 void UART_StructInit (UART_InitTypeDef* UART_InitStruct);
bogdanm 0:9b334a45a8ff 274
bogdanm 0:9b334a45a8ff 275 uint32_t UART_Init (UART_TypeDef *UARTx, UART_InitTypeDef* UART_InitStruct);
bogdanm 0:9b334a45a8ff 276 void UART_SendData (UART_TypeDef* UARTx, uint16_t Data);
bogdanm 0:9b334a45a8ff 277 uint16_t UART_ReceiveData (UART_TypeDef* UARTx);
bogdanm 0:9b334a45a8ff 278 void UART_SendBreak (UART_TypeDef* UARTx);
bogdanm 0:9b334a45a8ff 279 void UART_ClearRecvStatus (UART_TypeDef* UARTx, uint16_t UART_RECV_STATUS);
bogdanm 0:9b334a45a8ff 280 FlagStatus UART_GetFlagStatus (UART_TypeDef* UARTx, uint16_t UART_FLAG);
bogdanm 0:9b334a45a8ff 281 void UART_ITConfig (UART_TypeDef* UARTx, uint16_t UART_IT, FunctionalState NewState);
bogdanm 0:9b334a45a8ff 282 ITStatus UART_GetITStatus (UART_TypeDef* UARTx, uint16_t UART_IT);
bogdanm 0:9b334a45a8ff 283 void UART_ClearITPendingBit (UART_TypeDef* UARTx, uint16_t UART_IT);
bogdanm 0:9b334a45a8ff 284
bogdanm 0:9b334a45a8ff 285 uint8_t UartPutc (UART_TypeDef* UARTx, uint8_t ch);
bogdanm 0:9b334a45a8ff 286 void UartPuts (UART_TypeDef* UARTx, uint8_t *str);
bogdanm 0:9b334a45a8ff 287 uint8_t UartGetc (UART_TypeDef* UARTx);
bogdanm 0:9b334a45a8ff 288
bogdanm 0:9b334a45a8ff 289 void S_UART_DeInit (void);
bogdanm 0:9b334a45a8ff 290 uint32_t S_UART_Init (uint32_t baud);
bogdanm 0:9b334a45a8ff 291 void S_UART_SetBaud (uint32_t baud);
bogdanm 0:9b334a45a8ff 292 void S_UART_SetCTRL (uint16_t S_UART_CTRL, FunctionalState NewState);
bogdanm 0:9b334a45a8ff 293 void S_UART_SendData (uint16_t Data);
bogdanm 0:9b334a45a8ff 294 uint16_t S_UART_ReceiveData(void);
bogdanm 0:9b334a45a8ff 295
bogdanm 0:9b334a45a8ff 296 uint8_t S_UartPutc (uint8_t ch);
bogdanm 0:9b334a45a8ff 297 void S_UartPuts (uint8_t *str);
bogdanm 0:9b334a45a8ff 298 uint8_t S_UartGetc (void);
bogdanm 0:9b334a45a8ff 299
bogdanm 0:9b334a45a8ff 300 FlagStatus S_UART_GetFlagStatus (uint16_t S_UART_STATE);
bogdanm 0:9b334a45a8ff 301 void S_UART_ITConfig (uint16_t S_UART_CTRL, FunctionalState NewState);
bogdanm 0:9b334a45a8ff 302
bogdanm 0:9b334a45a8ff 303 ITStatus S_UART_GetITStatus (uint16_t S_UART_IT);
bogdanm 0:9b334a45a8ff 304 void S_UART_ClearITPendingBit(uint16_t S_UART_IT);
bogdanm 0:9b334a45a8ff 305
bogdanm 0:9b334a45a8ff 306
bogdanm 0:9b334a45a8ff 307 #ifdef __cplusplus
bogdanm 0:9b334a45a8ff 308 }
bogdanm 0:9b334a45a8ff 309 #endif
bogdanm 0:9b334a45a8ff 310
bogdanm 0:9b334a45a8ff 311
bogdanm 0:9b334a45a8ff 312 #endif // __W7500X_UART_H
bogdanm 0:9b334a45a8ff 313