]> git.sur5r.net Git - freertos/blob - Demo/ARM9_STR91X_IAR/Library/include/91x_uart.h
Start to re-arrange files to include FreeRTOS+ in main download.
[freertos] / Demo / ARM9_STR91X_IAR / Library / include / 91x_uart.h
1 /******************** (C) COPYRIGHT 2006 STMicroelectronics ********************\r
2 * File Name          : 91x_uart.h\r
3 * Author             : MCD Application Team\r
4 * Date First Issued  : 05/18/2006 : Version 1.0\r
5 * Description        : This file contains all the functions prototypes for the\r
6 *                      UART software library.\r
7 ********************************************************************************\r
8 * History:\r
9 * 05/24/2006 : Version 1.1\r
10 * 05/18/2006 : Version 1.0\r
11 ********************************************************************************\r
12 * THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS\r
13 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.\r
14 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,\r
15 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE\r
16 * CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING\r
17 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.\r
18 *******************************************************************************/\r
19 \r
20 /* Define to prevent recursive inclusion -------------------------------------*/\r
21 #ifndef __91x_UART_H\r
22 #define __91x_UART_H\r
23 \r
24 /* Includes ------------------------------------------------------------------*/\r
25 #include <91x_map.h>\r
26 \r
27 /* Exported types ------------------------------------------------------------*/\r
28 /* UART FIFO Level enumeration */\r
29 typedef enum\r
30 {\r
31   UART_FIFOLevel_1_8 = 0x0000,  /* FIFO size 16 bytes, FIFO level 2 bytes */\r
32   UART_FIFOLevel_1_4 = 0x0001,  /* FIFO size 16 bytes, FIFO level 4 bytes */\r
33   UART_FIFOLevel_1_2 = 0x0002,  /* FIFO size 16 bytes, FIFO level 8 bytes */\r
34   UART_FIFOLevel_3_4 = 0x0003,  /* FIFO size 16 bytes, FIFO level 12 bytes */\r
35   UART_FIFOLevel_7_8 = 0x0004   /* FIFO size 16 bytes, FIFO level 14 bytes */\r
36 }UART_FIFOLevel;\r
37 \r
38 /* UART Init Structure definition */\r
39 typedef struct\r
40 {\r
41   u16 UART_WordLength;\r
42   u16 UART_StopBits;\r
43   u16 UART_Parity;\r
44   u32 UART_BaudRate;\r
45   u16 UART_HardwareFlowControl;\r
46   u16 UART_Mode;\r
47   u16 UART_FIFO;\r
48   UART_FIFOLevel UART_TxFIFOLevel;\r
49   UART_FIFOLevel UART_RxFIFOLevel;\r
50 }UART_InitTypeDef;\r
51 \r
52 \r
53 /* UART RTS enumeration */\r
54 typedef enum\r
55 {\r
56   LowLevel = 0,\r
57   HighLevel\r
58 }UART_LevelTypeDef;\r
59 \r
60 /* Exported constants --------------------------------------------------------*/\r
61 /* UART Data Length */\r
62 #define UART_WordLength_5D            0x0000  /* 5 bits Data */\r
63 #define UART_WordLength_6D            0x0020  /* 6 bits Data */\r
64 #define UART_WordLength_7D            0x0040  /* 7 bits Data */\r
65 #define UART_WordLength_8D            0x0060  /* 8 bits Data */\r
66 \r
67 /* UART Stop Bits */\r
68 #define UART_StopBits_1         0xFFF7  /* Disable two stop bit is transmitted\r
69                                                  at the end of frame */\r
70 #define UART_StopBits_2         0x0008  /* Enable Two stop bits are transmitted\r
71                                                  at the end of frame */\r
72 /* UART Parity */\r
73 #define UART_Parity_No                0x0000  /* Parity Disable */\r
74 #define UART_Parity_Even              0x0006  /* Even Parity */\r
75 #define UART_Parity_Odd               0x0002  /* Odd Parity */\r
76 #define UART_Parity_OddStick          0x0082  /* 1 is transmitted as bit parity */\r
77 #define UART_Parity_EvenStick         0x0086  /* 0 is transmitted as bit parity */\r
78 \r
79 /* UART Hardware Flow Control */\r
80 #define UART_HardwareFlowControl_None      0x0000  /* HFC Disable */\r
81 #define UART_HardwareFlowControl_RTS       0x4000  /* RTS Enable */\r
82 #define UART_HardwareFlowControl_CTS       0x8000  /* CTS Enable */\r
83 #define UART_HardwareFlowControl_RTS_CTS   0xC000  /* CTS and RTS Enable */\r
84 \r
85 /* UART Mode */\r
86 #define UART_Mode_Rx                  0x0200  /* UART Rx Enabled */\r
87 #define UART_Mode_Tx                  0x0100  /* UART Tx Enbled */\r
88 #define UART_Mode_Tx_Rx               0x0300  /* UART Tx and Rx Enabled */\r
89 \r
90 /* UART FIFO */\r
91 #define UART_FIFO_Disable           0xFFEF  /* FIFOs Disable */\r
92 #define UART_FIFO_Enable            0x0010  /* FIFOs Enable */\r
93 \r
94 /* UART Interrupt definition */\r
95 #define UART_IT_OverrunError          0x0400  /* Overrun Error interrupt mask */\r
96 #define UART_IT_BreakError            0x0200  /* Break Error interrupt mask */\r
97 #define UART_IT_ParityError           0x0100  /* Parity Error interrupt mask */\r
98 #define UART_IT_FrameError            0x0080  /* Frame Error interrupt mask */\r
99 #define UART_IT_ReceiveTimeOut        0x0040  /* Receive Time Out interrupt mask */\r
100 #define UART_IT_Transmit              0x0020  /* Transmit interrupt mask */\r
101 #define UART_IT_Receive               0x0010  /* Receive interrupt mask */\r
102 #define UART_IT_DSR                   0x0008  /* DSR interrupt mask */\r
103 #define UART_IT_DCD                   0x0004  /* DCD interrupt mask */\r
104 #define UART_IT_CTS                   0x0002  /* CTS interrupt mask */\r
105 #define UART_IT_RI                    0x0001  /* RI interrupt mask */\r
106 \r
107 /* UART DMA On Error */\r
108 #define UART_DMAOnError_Enable        0xFFFB  /* DMA receive request enabled\r
109                                                  when the UART error interrupt\r
110                                                  is asserted. */\r
111 #define UART_DMAOnError_Disable       0x0004  /* DMA receive request disabled\r
112                                                  when the UART error interrupt\r
113                                                  is asserted. */\r
114 /* UART DMA Request */\r
115 #define UART_DMAReq_Tx                0x02      /* Transmit DMA Enable */\r
116 #define UART_DMAReq_Rx                0x01      /* Receive DMA Enable */\r
117 \r
118 /* UART FLAG */\r
119 #define UART_FLAG_OverrunError        0x23    /* Overrun error flag */\r
120 #define UART_FLAG_Break               0x22    /* break error flag */\r
121 #define UART_FLAG_ParityError         0x21    /* parity error flag */\r
122 #define UART_FLAG_FrameError          0x20    /* frame error flag */\r
123 #define UART_FLAG_RI                  0x48    /* RI flag */\r
124 #define UART_FLAG_TxFIFOEmpty         0x47    /* Transmit FIFO Empty flag */\r
125 #define UART_FLAG_RxFIFOFull          0x46    /* Receive FIFO Full flag */\r
126 #define UART_FLAG_TxFIFOFull          0x45    /* Transmit FIFO Full flag */\r
127 #define UART_FLAG_RxFIFOEmpty         0x44    /* Receive FIFO Empty flag */\r
128 #define UART_FLAG_Busy                0x43    /* UART Busy flag */\r
129 #define UART_FLAG_DCD                 0x42    /* DCD flag */\r
130 #define UART_FLAG_DSR                 0x41    /* DSR flag */\r
131 #define UART_FLAG_CTS                 0x40    /* CTS flag */\r
132 #define UART_RawIT_OverrunError       0x6A    /* Overrun Error Raw IT flag */\r
133 #define UART_RawIT_BreakError         0x69    /* Break Error Raw IT flag */\r
134 #define UART_RawIT_ParityError        0x68    /* Parity Error Raw IT flag */\r
135 #define UART_RawIT_FrameError         0x67    /* Frame Error Raw IT flag */\r
136 #define UART_RawIT_ReceiveTimeOut     0x66    /* ReceiveTimeOut Raw IT flag */\r
137 #define UART_RawIT_Transmit           0x65    /* Transmit Raw IT flag */\r
138 #define UART_RawIT_Receive            0x64    /* Receive Raw IT flag */\r
139 #define UART_RawIT_DSR                0x63    /* DSR Raw IT flag */\r
140 #define UART_RawIT_DCD                0x62    /* DCD Raw IT flag */\r
141 #define UART_RawIT_CTS                0x61    /* CTS Raw IT flag */\r
142 #define UART_RawIT_RI                 0x60    /* RI Raw IT flag */\r
143 \r
144 /*IrDAx select*/\r
145 #define IrDA0 0x01                             /*IrDA0 select*/\r
146 #define IrDA1 0x02                             /*IrDA0 select*/\r
147 #define IrDA2 0x03                             /*IrDA0 select*/\r
148 \r
149 /* Exported macro ------------------------------------------------------------*/\r
150 /* Exported functions ------------------------------------------------------- */\r
151 void UART_DeInit(UART_TypeDef* UARTx);\r
152 void UART_Init(UART_TypeDef* UARTx, UART_InitTypeDef* UART_InitStruct);\r
153 void UART_StructInit(UART_InitTypeDef* UART_InitStruct);\r
154 void UART_Cmd(UART_TypeDef* UARTx, FunctionalState NewState);\r
155 void UART_ITConfig(UART_TypeDef* UARTx, u16 UART_IT, FunctionalState NewState);\r
156 void UART_DMAConfig(UART_TypeDef* UARTx, u16 UART_DMAOnError);\r
157 void UART_DMACmd(UART_TypeDef* UARTx, u8 UART_DMAReq, FunctionalState NewState);\r
158 void UART_LoopBackConfig(UART_TypeDef* UARTx, FunctionalState NewState);\r
159 FlagStatus UART_GetFlagStatus(UART_TypeDef* UARTx, u16 UART_FLAG);\r
160 void UART_ClearFlag(UART_TypeDef* UARTx);\r
161 void UART_ClearITPendingBit(UART_TypeDef* UARTx, u16 UART_IT);\r
162 void UART_IrDALowPowerConfig(u8 IrDAx, FunctionalState NewState);\r
163 void UART_IrDACmd(u8 IrDAx, FunctionalState NewState);\r
164 void UART_IrDASetCounter(u8 IrDAx, u32 IrDA_Counter);\r
165 void UART_SendData(UART_TypeDef* UARTx, u8 Data);\r
166 u8 UART_ReceiveData(UART_TypeDef* UARTx);\r
167 void UART_SendBreak(UART_TypeDef* UARTx);\r
168 void UART_DTRConfig(UART_LevelTypeDef LevelState);\r
169 void UART_RTSConfig(UART_LevelTypeDef LevelState);\r
170 ITStatus UART_GetITStatus(UART_TypeDef* UARTx, u16 UART_IT);\r
171 \r
172 #endif /* __91x_UART_H */\r
173 \r
174 /******************* (C) COPYRIGHT 2006 STMicroelectronics *****END OF FILE****/\r