Rev 2 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2 | Rev 9 | ||
---|---|---|---|
Line 4... | Line 4... | ||
4 | * @author MCD Application Team |
4 | * @author MCD Application Team |
5 | * @brief Header file of IRDA HAL module. |
5 | * @brief Header file of IRDA HAL module. |
6 | ****************************************************************************** |
6 | ****************************************************************************** |
7 | * @attention |
7 | * @attention |
8 | * |
8 | * |
9 | * <h2><center>© COPYRIGHT(c) 2017 STMicroelectronics</center></h2> |
9 | * <h2><center>© Copyright (c) 2016 STMicroelectronics. |
- | 10 | * All rights reserved.</center></h2> |
|
10 | * |
11 | * |
11 | * Redistribution and use in source and binary forms, with or without modification, |
12 | * This software component is licensed by ST under BSD 3-Clause license, |
12 | * are permitted provided that the following conditions are met: |
13 | * the "License"; You may not use this file except in compliance with the |
13 | * 1. Redistributions of source code must retain the above copyright notice, |
- | |
14 | * this list of conditions and the following disclaimer. |
- | |
15 | * 2. Redistributions in binary form must reproduce the above copyright notice, |
- | |
16 | * this list of conditions and the following disclaimer in the documentation |
- | |
17 | * and/or other materials provided with the distribution. |
14 | * License. You may obtain a copy of the License at: |
18 | * 3. Neither the name of STMicroelectronics nor the names of its contributors |
- | |
19 | * may be used to endorse or promote products derived from this software |
15 | * opensource.org/licenses/BSD-3-Clause |
20 | * without specific prior written permission. |
- | |
21 | * |
- | |
22 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
- | |
23 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
- | |
24 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
- | |
25 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE |
- | |
26 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
- | |
27 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
- | |
28 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
- | |
29 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
- | |
30 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
- | |
31 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
- | |
32 | * |
16 | * |
33 | ****************************************************************************** |
17 | ****************************************************************************** |
34 | */ |
18 | */ |
35 | 19 | ||
36 | /* Define to prevent recursive inclusion -------------------------------------*/ |
20 | /* Define to prevent recursive inclusion -------------------------------------*/ |
37 | #ifndef __STM32F1xx_HAL_IRDA_H |
21 | #ifndef __STM32F1xx_HAL_IRDA_H |
38 | #define __STM32F1xx_HAL_IRDA_H |
22 | #define __STM32F1xx_HAL_IRDA_H |
39 | 23 | ||
40 | #ifdef __cplusplus |
24 | #ifdef __cplusplus |
41 | extern "C" { |
25 | extern "C" { |
42 | #endif |
26 | #endif |
43 | 27 | ||
44 | /* Includes ------------------------------------------------------------------*/ |
28 | /* Includes ------------------------------------------------------------------*/ |
45 | #include "stm32f1xx_hal_def.h" |
29 | #include "stm32f1xx_hal_def.h" |
46 | 30 | ||
Line 50... | Line 34... | ||
50 | 34 | ||
51 | /** @addtogroup IRDA |
35 | /** @addtogroup IRDA |
52 | * @{ |
36 | * @{ |
53 | */ |
37 | */ |
54 | 38 | ||
55 | /* Exported types ------------------------------------------------------------*/ |
39 | /* Exported types ------------------------------------------------------------*/ |
56 | /** @defgroup IRDA_Exported_Types IRDA Exported Types |
40 | /** @defgroup IRDA_Exported_Types IRDA Exported Types |
57 | * @{ |
41 | * @{ |
58 | */ |
42 | */ |
59 | - | ||
60 | /** |
43 | /** |
61 | * @brief IRDA Init Structure definition |
44 | * @brief IRDA Init Structure definition |
62 | */ |
45 | */ |
63 | typedef struct |
46 | typedef struct |
64 | { |
47 | { |
Line 68... | Line 51... | ||
68 | - FractionalDivider = ((IntegerDivider - ((uint32_t) IntegerDivider)) * 16) + 0.5 */ |
51 | - FractionalDivider = ((IntegerDivider - ((uint32_t) IntegerDivider)) * 16) + 0.5 */ |
69 | 52 | ||
70 | uint32_t WordLength; /*!< Specifies the number of data bits transmitted or received in a frame. |
53 | uint32_t WordLength; /*!< Specifies the number of data bits transmitted or received in a frame. |
71 | This parameter can be a value of @ref IRDA_Word_Length */ |
54 | This parameter can be a value of @ref IRDA_Word_Length */ |
72 | 55 | ||
73 | - | ||
74 | uint32_t Parity; /*!< Specifies the parity mode. |
56 | uint32_t Parity; /*!< Specifies the parity mode. |
75 | This parameter can be a value of @ref IRDA_Parity |
57 | This parameter can be a value of @ref IRDA_Parity |
76 | @note When parity is enabled, the computed parity is inserted |
58 | @note When parity is enabled, the computed parity is inserted |
77 | at the MSB position of the transmitted data (9th bit when |
59 | at the MSB position of the transmitted data (9th bit when |
78 | the word length is set to 9 data bits; 8th bit when the |
60 | the word length is set to 9 data bits; 8th bit when the |
79 | word length is set to 8 data bits). */ |
61 | word length is set to 8 data bits). */ |
80 | 62 | ||
81 | uint32_t Mode; /*!< Specifies whether the Receive or Transmit mode is enabled or disabled. |
63 | uint32_t Mode; /*!< Specifies whether the Receive or Transmit mode is enabled or disabled. |
82 | This parameter can be a value of @ref IRDA_Transfer_Mode */ |
64 | This parameter can be a value of @ref IRDA_Mode */ |
83 | - | ||
- | 65 | ||
84 | uint8_t Prescaler; /*!< Specifies the Prescaler value prescaler value to be programmed |
66 | uint8_t Prescaler; /*!< Specifies the Prescaler value to be programmed |
85 | in the IrDA low-power Baud Register, for defining pulse width on which |
67 | in the IrDA low-power Baud Register, for defining pulse width on which |
86 | burst acceptance/rejection will be decided. This value is used as divisor |
68 | burst acceptance/rejection will be decided. This value is used as divisor |
87 | of system clock to achieve required pulse width. */ |
69 | of system clock to achieve required pulse width. */ |
88 | 70 | ||
89 | uint32_t IrDAMode; /*!< Specifies the IrDA mode |
71 | uint32_t IrDAMode; /*!< Specifies the IrDA mode |
90 | This parameter can be a value of @ref IRDA_Low_Power */ |
72 | This parameter can be a value of @ref IRDA_Low_Power */ |
91 | }IRDA_InitTypeDef; |
73 | } IRDA_InitTypeDef; |
92 | 74 | ||
93 | /** |
75 | /** |
94 | * @brief HAL IRDA State structures definition |
76 | * @brief HAL IRDA State structures definition |
95 | * @note HAL IRDA State value is a combination of 2 different substates: gState and RxState. |
77 | * @note HAL IRDA State value is a combination of 2 different substates: gState and RxState. |
96 | * - gState contains IRDA state information related to global Handle management |
78 | * - gState contains IRDA state information related to global Handle management |
97 | * and also information related to Tx operations. |
79 | * and also information related to Tx operations. |
98 | * gState value coding follow below described bitmap : |
80 | * gState value coding follow below described bitmap : |
99 | * b7-b6 Error information |
81 | * b7-b6 Error information |
100 | * 00 : No Error |
82 | * 00 : No Error |
101 | * 01 : (Not Used) |
83 | * 01 : (Not Used) |
102 | * 10 : Timeout |
84 | * 10 : Timeout |
103 | * 11 : Error |
85 | * 11 : Error |
104 | * b5 IP initilisation status |
86 | * b5 IP initilisation status |
Line 126... | Line 108... | ||
126 | * b1 Rx state |
108 | * b1 Rx state |
127 | * 0 : Ready (no Rx operation ongoing) |
109 | * 0 : Ready (no Rx operation ongoing) |
128 | * 1 : Busy (Rx operation ongoing) |
110 | * 1 : Busy (Rx operation ongoing) |
129 | * b0 (not used) |
111 | * b0 (not used) |
130 | * x : Should be set to 0. |
112 | * x : Should be set to 0. |
131 | */ |
113 | */ |
132 | typedef enum |
114 | typedef enum |
133 | { |
115 | { |
134 | HAL_IRDA_STATE_RESET = 0x00U, /*!< Peripheral is not yet Initialized |
116 | HAL_IRDA_STATE_RESET = 0x00U, /*!< Peripheral is not yet Initialized |
135 | Value is allowed for gState and RxState */ |
117 | Value is allowed for gState and RxState */ |
136 | HAL_IRDA_STATE_READY = 0x20U, /*!< Peripheral Initialized and ready for use |
118 | HAL_IRDA_STATE_READY = 0x20U, /*!< Peripheral Initialized and ready for use |
137 | Value is allowed for gState and RxState */ |
119 | Value is allowed for gState and RxState */ |
138 | HAL_IRDA_STATE_BUSY = 0x24U, /*!< An internal process is ongoing |
120 | HAL_IRDA_STATE_BUSY = 0x24U, /*!< An internal process is ongoing |
139 | Value is allowed for gState only */ |
121 | Value is allowed for gState only */ |
140 | HAL_IRDA_STATE_BUSY_TX = 0x21U, /*!< Data Transmission process is ongoing |
122 | HAL_IRDA_STATE_BUSY_TX = 0x21U, /*!< Data Transmission process is ongoing |
141 | Value is allowed for gState only */ |
123 | Value is allowed for gState only */ |
142 | HAL_IRDA_STATE_BUSY_RX = 0x22U, /*!< Data Reception process is ongoing |
124 | HAL_IRDA_STATE_BUSY_RX = 0x22U, /*!< Data Reception process is ongoing |
143 | Value is allowed for RxState only */ |
125 | Value is allowed for RxState only */ |
144 | HAL_IRDA_STATE_BUSY_TX_RX = 0x23U, /*!< Data Transmission and Reception process is ongoing |
126 | HAL_IRDA_STATE_BUSY_TX_RX = 0x23U, /*!< Data Transmission and Reception process is ongoing |
145 | Not to be used for neither gState nor RxState. |
127 | Not to be used for neither gState nor RxState. |
146 | Value is result of combination (Or) between gState and RxState values */ |
128 | Value is result of combination (Or) between gState and RxState values */ |
147 | HAL_IRDA_STATE_TIMEOUT = 0xA0U, /*!< Timeout state |
129 | HAL_IRDA_STATE_TIMEOUT = 0xA0U, /*!< Timeout state |
148 | Value is allowed for gState only */ |
130 | Value is allowed for gState only */ |
149 | HAL_IRDA_STATE_ERROR = 0xE0U /*!< Error |
131 | HAL_IRDA_STATE_ERROR = 0xE0U /*!< Error |
150 | Value is allowed for gState only */ |
132 | Value is allowed for gState only */ |
151 | }HAL_IRDA_StateTypeDef; |
133 | } HAL_IRDA_StateTypeDef; |
152 | 134 | ||
153 | /** |
135 | /** |
154 | * @brief IRDA handle Structure definition |
136 | * @brief IRDA handle Structure definition |
155 | */ |
137 | */ |
- | 138 | #if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1) |
|
- | 139 | typedef struct __IRDA_HandleTypeDef |
|
- | 140 | #else |
|
156 | typedef struct |
141 | typedef struct |
- | 142 | #endif /* USE_HAL_IRDA_REGISTER_CALLBACKS */ |
|
157 | { |
143 | { |
158 | USART_TypeDef *Instance; /*!< USART registers base address */ |
144 | USART_TypeDef *Instance; /*!< USART registers base address */ |
159 | 145 | ||
160 | IRDA_InitTypeDef Init; /*!< IRDA communication parameters */ |
146 | IRDA_InitTypeDef Init; /*!< IRDA communication parameters */ |
161 | 147 | ||
162 | uint8_t *pTxBuffPtr; /*!< Pointer to IRDA Tx transfer Buffer */ |
148 | uint8_t *pTxBuffPtr; /*!< Pointer to IRDA Tx transfer Buffer */ |
163 | 149 | ||
164 | uint16_t TxXferSize; /*!< IRDA Tx Transfer size */ |
150 | uint16_t TxXferSize; /*!< IRDA Tx Transfer size */ |
165 | 151 | ||
166 | __IO uint16_t TxXferCount; /*!< IRDA Tx Transfer Counter */ |
152 | __IO uint16_t TxXferCount; /*!< IRDA Tx Transfer Counter */ |
167 | 153 | ||
168 | uint8_t *pRxBuffPtr; /*!< Pointer to IRDA Rx transfer Buffer */ |
154 | uint8_t *pRxBuffPtr; /*!< Pointer to IRDA Rx transfer Buffer */ |
169 | 155 | ||
170 | uint16_t RxXferSize; /*!< IRDA Rx Transfer size */ |
156 | uint16_t RxXferSize; /*!< IRDA Rx Transfer size */ |
171 | 157 | ||
172 | __IO uint16_t RxXferCount; /*!< IRDA Rx Transfer Counter */ |
158 | __IO uint16_t RxXferCount; /*!< IRDA Rx Transfer Counter */ |
173 | 159 | ||
174 | DMA_HandleTypeDef *hdmatx; /*!< IRDA Tx DMA Handle parameters */ |
160 | DMA_HandleTypeDef *hdmatx; /*!< IRDA Tx DMA Handle parameters */ |
175 | 161 | ||
176 | DMA_HandleTypeDef *hdmarx; /*!< IRDA Rx DMA Handle parameters */ |
162 | DMA_HandleTypeDef *hdmarx; /*!< IRDA Rx DMA Handle parameters */ |
177 | 163 | ||
178 | HAL_LockTypeDef Lock; /*!< Locking object */ |
164 | HAL_LockTypeDef Lock; /*!< Locking object */ |
179 | 165 | ||
180 | __IO HAL_IRDA_StateTypeDef gState; /*!< IRDA state information related to global Handle management |
166 | __IO HAL_IRDA_StateTypeDef gState; /*!< IRDA state information related to global Handle management |
181 | and also related to Tx operations. |
167 | and also related to Tx operations. |
182 | This parameter can be a value of @ref HAL_IRDA_StateTypeDef */ |
168 | This parameter can be a value of @ref HAL_IRDA_StateTypeDef */ |
183 | 169 | ||
184 | __IO HAL_IRDA_StateTypeDef RxState; /*!< IRDA state information related to Rx operations. |
170 | __IO HAL_IRDA_StateTypeDef RxState; /*!< IRDA state information related to Rx operations. |
185 | This parameter can be a value of @ref HAL_IRDA_StateTypeDef */ |
171 | This parameter can be a value of @ref HAL_IRDA_StateTypeDef */ |
186 | 172 | ||
187 | __IO uint32_t ErrorCode; /*!< IRDA Error code */ |
173 | __IO uint32_t ErrorCode; /*!< IRDA Error code */ |
- | 174 | ||
- | 175 | #if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1) |
|
- | 176 | void (* TxHalfCpltCallback)(struct __IRDA_HandleTypeDef *hirda); /*!< IRDA Tx Half Complete Callback */ |
|
- | 177 | ||
- | 178 | void (* TxCpltCallback)(struct __IRDA_HandleTypeDef *hirda); /*!< IRDA Tx Complete Callback */ |
|
- | 179 | ||
- | 180 | void (* RxHalfCpltCallback)(struct __IRDA_HandleTypeDef *hirda); /*!< IRDA Rx Half Complete Callback */ |
|
- | 181 | ||
- | 182 | void (* RxCpltCallback)(struct __IRDA_HandleTypeDef *hirda); /*!< IRDA Rx Complete Callback */ |
|
- | 183 | ||
- | 184 | void (* ErrorCallback)(struct __IRDA_HandleTypeDef *hirda); /*!< IRDA Error Callback */ |
|
- | 185 | ||
- | 186 | void (* AbortCpltCallback)(struct __IRDA_HandleTypeDef *hirda); /*!< IRDA Abort Complete Callback */ |
|
- | 187 | ||
- | 188 | void (* AbortTransmitCpltCallback)(struct __IRDA_HandleTypeDef *hirda); /*!< IRDA Abort Transmit Complete Callback */ |
|
- | 189 | ||
- | 190 | void (* AbortReceiveCpltCallback)(struct __IRDA_HandleTypeDef *hirda); /*!< IRDA Abort Receive Complete Callback */ |
|
- | 191 | ||
- | 192 | ||
- | 193 | void (* MspInitCallback)(struct __IRDA_HandleTypeDef *hirda); /*!< IRDA Msp Init callback */ |
|
- | 194 | ||
- | 195 | void (* MspDeInitCallback)(struct __IRDA_HandleTypeDef *hirda); /*!< IRDA Msp DeInit callback */ |
|
- | 196 | #endif /* USE_HAL_IRDA_REGISTER_CALLBACKS */ |
|
- | 197 | ||
188 | }IRDA_HandleTypeDef; |
198 | } IRDA_HandleTypeDef; |
- | 199 | ||
- | 200 | #if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1) |
|
- | 201 | /** |
|
- | 202 | * @brief HAL IRDA Callback ID enumeration definition |
|
- | 203 | */ |
|
- | 204 | typedef enum |
|
- | 205 | { |
|
- | 206 | HAL_IRDA_TX_HALFCOMPLETE_CB_ID = 0x00U, /*!< IRDA Tx Half Complete Callback ID */ |
|
- | 207 | HAL_IRDA_TX_COMPLETE_CB_ID = 0x01U, /*!< IRDA Tx Complete Callback ID */ |
|
- | 208 | HAL_IRDA_RX_HALFCOMPLETE_CB_ID = 0x02U, /*!< IRDA Rx Half Complete Callback ID */ |
|
- | 209 | HAL_IRDA_RX_COMPLETE_CB_ID = 0x03U, /*!< IRDA Rx Complete Callback ID */ |
|
- | 210 | HAL_IRDA_ERROR_CB_ID = 0x04U, /*!< IRDA Error Callback ID */ |
|
- | 211 | HAL_IRDA_ABORT_COMPLETE_CB_ID = 0x05U, /*!< IRDA Abort Complete Callback ID */ |
|
- | 212 | HAL_IRDA_ABORT_TRANSMIT_COMPLETE_CB_ID = 0x06U, /*!< IRDA Abort Transmit Complete Callback ID */ |
|
- | 213 | HAL_IRDA_ABORT_RECEIVE_COMPLETE_CB_ID = 0x07U, /*!< IRDA Abort Receive Complete Callback ID */ |
|
- | 214 | ||
- | 215 | HAL_IRDA_MSPINIT_CB_ID = 0x08U, /*!< IRDA MspInit callback ID */ |
|
- | 216 | HAL_IRDA_MSPDEINIT_CB_ID = 0x09U /*!< IRDA MspDeInit callback ID */ |
|
- | 217 | ||
- | 218 | } HAL_IRDA_CallbackIDTypeDef; |
|
- | 219 | ||
- | 220 | /** |
|
- | 221 | * @brief HAL IRDA Callback pointer definition |
|
- | 222 | */ |
|
- | 223 | typedef void (*pIRDA_CallbackTypeDef)(IRDA_HandleTypeDef *hirda); /*!< pointer to an IRDA callback function */ |
|
- | 224 | ||
- | 225 | #endif /* USE_HAL_IRDA_REGISTER_CALLBACKS */ |
|
189 | 226 | ||
190 | /** |
227 | /** |
191 | * @} |
228 | * @} |
192 | */ |
229 | */ |
193 | 230 | ||
Line 195... | Line 232... | ||
195 | /** @defgroup IRDA_Exported_Constants IRDA Exported constants |
232 | /** @defgroup IRDA_Exported_Constants IRDA Exported constants |
196 | * @{ |
233 | * @{ |
197 | */ |
234 | */ |
198 | /** @defgroup IRDA_Error_Code IRDA Error Code |
235 | /** @defgroup IRDA_Error_Code IRDA Error Code |
199 | * @{ |
236 | * @{ |
200 | */ |
237 | */ |
201 | #define HAL_IRDA_ERROR_NONE 0x00000000U /*!< No error */ |
238 | #define HAL_IRDA_ERROR_NONE 0x00000000U /*!< No error */ |
202 | #define HAL_IRDA_ERROR_PE 0x00000001U /*!< Parity error */ |
239 | #define HAL_IRDA_ERROR_PE 0x00000001U /*!< Parity error */ |
203 | #define HAL_IRDA_ERROR_NE 0x00000002U /*!< Noise error */ |
240 | #define HAL_IRDA_ERROR_NE 0x00000002U /*!< Noise error */ |
204 | #define HAL_IRDA_ERROR_FE 0x00000004U /*!< Frame error */ |
241 | #define HAL_IRDA_ERROR_FE 0x00000004U /*!< Frame error */ |
205 | #define HAL_IRDA_ERROR_ORE 0x00000008U /*!< Overrun error */ |
242 | #define HAL_IRDA_ERROR_ORE 0x00000008U /*!< Overrun error */ |
206 | #define HAL_IRDA_ERROR_DMA 0x00000010U /*!< DMA transfer error */ |
243 | #define HAL_IRDA_ERROR_DMA 0x00000010U /*!< DMA transfer error */ |
- | 244 | #if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1) |
|
- | 245 | #define HAL_IRDA_ERROR_INVALID_CALLBACK ((uint32_t)0x00000020U) /*!< Invalid Callback error */ |
|
- | 246 | #endif /* USE_HAL_IRDA_REGISTER_CALLBACKS */ |
|
207 | /** |
247 | /** |
208 | * @} |
248 | * @} |
209 | */ |
249 | */ |
210 | 250 | ||
211 | /** @defgroup IRDA_Word_Length IRDA Word Length |
251 | /** @defgroup IRDA_Word_Length IRDA Word Length |
212 | * @{ |
252 | * @{ |
213 | */ |
253 | */ |
214 | #define IRDA_WORDLENGTH_8B 0x00000000U |
254 | #define IRDA_WORDLENGTH_8B 0x00000000U |
215 | #define IRDA_WORDLENGTH_9B ((uint32_t)USART_CR1_M) |
255 | #define IRDA_WORDLENGTH_9B ((uint32_t)USART_CR1_M) |
216 | /** |
256 | /** |
217 | * @} |
257 | * @} |
218 | */ |
258 | */ |
219 | 259 | ||
220 | /** @defgroup IRDA_Parity IRDA Parity |
260 | /** @defgroup IRDA_Parity IRDA Parity |
221 | * @{ |
261 | * @{ |
222 | */ |
262 | */ |
223 | #define IRDA_PARITY_NONE 0x00000000U |
263 | #define IRDA_PARITY_NONE 0x00000000U |
224 | #define IRDA_PARITY_EVEN ((uint32_t)USART_CR1_PCE) |
264 | #define IRDA_PARITY_EVEN ((uint32_t)USART_CR1_PCE) |
225 | #define IRDA_PARITY_ODD ((uint32_t)(USART_CR1_PCE | USART_CR1_PS)) |
265 | #define IRDA_PARITY_ODD ((uint32_t)(USART_CR1_PCE | USART_CR1_PS)) |
226 | /** |
266 | /** |
227 | * @} |
267 | * @} |
228 | */ |
268 | */ |
229 | 269 | ||
230 | /** @defgroup IRDA_Transfer_Mode IRDA Transfer Mode |
270 | /** @defgroup IRDA_Mode IRDA Transfer Mode |
231 | * @{ |
271 | * @{ |
232 | */ |
272 | */ |
233 | #define IRDA_MODE_RX ((uint32_t)USART_CR1_RE) |
273 | #define IRDA_MODE_RX ((uint32_t)USART_CR1_RE) |
234 | #define IRDA_MODE_TX ((uint32_t)USART_CR1_TE) |
274 | #define IRDA_MODE_TX ((uint32_t)USART_CR1_TE) |
235 | #define IRDA_MODE_TX_RX ((uint32_t)(USART_CR1_TE |USART_CR1_RE)) |
275 | #define IRDA_MODE_TX_RX ((uint32_t)(USART_CR1_TE |USART_CR1_RE)) |
236 | /** |
276 | /** |
237 | * @} |
277 | * @} |
238 | */ |
278 | */ |
239 | 279 | ||
240 | /** @defgroup IRDA_Low_Power IRDA Low Power |
280 | /** @defgroup IRDA_Low_Power IRDA Low Power |
241 | * @{ |
281 | * @{ |
242 | */ |
282 | */ |
243 | #define IRDA_POWERMODE_LOWPOWER ((uint32_t)USART_CR3_IRLP) |
283 | #define IRDA_POWERMODE_LOWPOWER ((uint32_t)USART_CR3_IRLP) |
244 | #define IRDA_POWERMODE_NORMAL 0x00000000U |
284 | #define IRDA_POWERMODE_NORMAL 0x00000000U |
245 | /** |
285 | /** |
246 | * @} |
286 | * @} |
247 | */ |
287 | */ |
248 | 288 | ||
249 | /** @defgroup IRDA_Flags IRDA Flags |
289 | /** @defgroup IRDA_Flags IRDA Flags |
250 | * Elements values convention: 0xXXXX |
290 | * Elements values convention: 0xXXXX |
251 | * - 0xXXXX : Flag mask in the SR register |
291 | * - 0xXXXX : Flag mask in the SR register |
252 | * @{ |
292 | * @{ |
253 | */ |
293 | */ |
254 | #define IRDA_FLAG_TXE ((uint32_t)USART_SR_TXE) |
294 | #define IRDA_FLAG_TXE ((uint32_t)USART_SR_TXE) |
255 | #define IRDA_FLAG_TC ((uint32_t)USART_SR_TC) |
295 | #define IRDA_FLAG_TC ((uint32_t)USART_SR_TC) |
256 | #define IRDA_FLAG_RXNE ((uint32_t)USART_SR_RXNE) |
296 | #define IRDA_FLAG_RXNE ((uint32_t)USART_SR_RXNE) |
257 | #define IRDA_FLAG_IDLE ((uint32_t)USART_SR_IDLE) |
297 | #define IRDA_FLAG_IDLE ((uint32_t)USART_SR_IDLE) |
258 | #define IRDA_FLAG_ORE ((uint32_t)USART_SR_ORE) |
298 | #define IRDA_FLAG_ORE ((uint32_t)USART_SR_ORE) |
259 | #define IRDA_FLAG_NE ((uint32_t)USART_SR_NE) |
299 | #define IRDA_FLAG_NE ((uint32_t)USART_SR_NE) |
260 | #define IRDA_FLAG_FE ((uint32_t)USART_SR_FE) |
300 | #define IRDA_FLAG_FE ((uint32_t)USART_SR_FE) |
261 | #define IRDA_FLAG_PE ((uint32_t)USART_SR_PE) |
301 | #define IRDA_FLAG_PE ((uint32_t)USART_SR_PE) |
262 | /** |
302 | /** |
263 | * @} |
303 | * @} |
264 | */ |
304 | */ |
265 | 305 | ||
266 | /** @defgroup IRDA_Interrupt_definition IRDA Interrupt Definitions |
306 | /** @defgroup IRDA_Interrupt_definition IRDA Interrupt Definitions |
Line 270... | Line 310... | ||
270 | * - 01: CR1 register |
310 | * - 01: CR1 register |
271 | * - 10: CR2 register |
311 | * - 10: CR2 register |
272 | * - 11: CR3 register |
312 | * - 11: CR3 register |
273 | * @{ |
313 | * @{ |
274 | */ |
314 | */ |
275 | #define IRDA_IT_PE ((uint32_t)(IRDA_CR1_REG_INDEX << 28U | USART_CR1_PEIE)) |
315 | #define IRDA_IT_PE ((uint32_t)(IRDA_CR1_REG_INDEX << 28U | USART_CR1_PEIE)) |
276 | #define IRDA_IT_TXE ((uint32_t)(IRDA_CR1_REG_INDEX << 28U | USART_CR1_TXEIE)) |
316 | #define IRDA_IT_TXE ((uint32_t)(IRDA_CR1_REG_INDEX << 28U | USART_CR1_TXEIE)) |
277 | #define IRDA_IT_TC ((uint32_t)(IRDA_CR1_REG_INDEX << 28U | USART_CR1_TCIE)) |
317 | #define IRDA_IT_TC ((uint32_t)(IRDA_CR1_REG_INDEX << 28U | USART_CR1_TCIE)) |
278 | #define IRDA_IT_RXNE ((uint32_t)(IRDA_CR1_REG_INDEX << 28U | USART_CR1_RXNEIE)) |
318 | #define IRDA_IT_RXNE ((uint32_t)(IRDA_CR1_REG_INDEX << 28U | USART_CR1_RXNEIE)) |
279 | #define IRDA_IT_IDLE ((uint32_t)(IRDA_CR1_REG_INDEX << 28U | USART_CR1_IDLEIE)) |
319 | #define IRDA_IT_IDLE ((uint32_t)(IRDA_CR1_REG_INDEX << 28U | USART_CR1_IDLEIE)) |
280 | 320 | ||
281 | #define IRDA_IT_LBD ((uint32_t)(IRDA_CR2_REG_INDEX << 28U | USART_CR2_LBDIE)) |
321 | #define IRDA_IT_LBD ((uint32_t)(IRDA_CR2_REG_INDEX << 28U | USART_CR2_LBDIE)) |
282 | 322 | ||
283 | #define IRDA_IT_CTS ((uint32_t)(IRDA_CR3_REG_INDEX << 28U | USART_CR3_CTSIE)) |
323 | #define IRDA_IT_CTS ((uint32_t)(IRDA_CR3_REG_INDEX << 28U | USART_CR3_CTSIE)) |
284 | #define IRDA_IT_ERR ((uint32_t)(IRDA_CR3_REG_INDEX << 28U | USART_CR3_EIE)) |
324 | #define IRDA_IT_ERR ((uint32_t)(IRDA_CR3_REG_INDEX << 28U | USART_CR3_EIE)) |
285 | /** |
325 | /** |
286 | * @} |
326 | * @} |
287 | */ |
327 | */ |
288 | 328 | ||
289 | /** |
329 | /** |
Line 294... | Line 334... | ||
294 | /** @defgroup IRDA_Exported_Macros IRDA Exported Macros |
334 | /** @defgroup IRDA_Exported_Macros IRDA Exported Macros |
295 | * @{ |
335 | * @{ |
296 | */ |
336 | */ |
297 | 337 | ||
298 | /** @brief Reset IRDA handle gstate & RxState |
338 | /** @brief Reset IRDA handle gstate & RxState |
299 | * @param __HANDLE__: specifies the IRDA Handle. |
339 | * @param __HANDLE__ specifies the IRDA Handle. |
300 | * IRDA Handle selects the USARTx or UARTy peripheral |
340 | * IRDA Handle selects the USARTx or UARTy peripheral |
301 | * (USART,UART availability and x,y values depending on device). |
341 | * (USART,UART availability and x,y values depending on device). |
- | 342 | * @retval None |
|
302 | */ |
343 | */ |
- | 344 | #if USE_HAL_IRDA_REGISTER_CALLBACKS == 1 |
|
303 | #define __HAL_IRDA_RESET_HANDLE_STATE(__HANDLE__) do{ \ |
345 | #define __HAL_IRDA_RESET_HANDLE_STATE(__HANDLE__) do{ \ |
304 | (__HANDLE__)->gState = HAL_IRDA_STATE_RESET; \ |
346 | (__HANDLE__)->gState = HAL_IRDA_STATE_RESET; \ |
305 | (__HANDLE__)->RxState = HAL_IRDA_STATE_RESET; \ |
347 | (__HANDLE__)->RxState = HAL_IRDA_STATE_RESET; \ |
- | 348 | (__HANDLE__)->MspInitCallback = NULL; \ |
|
- | 349 | (__HANDLE__)->MspDeInitCallback = NULL; \ |
|
306 | } while(0U) |
350 | } while(0U) |
- | 351 | #else |
|
- | 352 | #define __HAL_IRDA_RESET_HANDLE_STATE(__HANDLE__) do{ \ |
|
- | 353 | (__HANDLE__)->gState = HAL_IRDA_STATE_RESET; \ |
|
- | 354 | (__HANDLE__)->RxState = HAL_IRDA_STATE_RESET; \ |
|
- | 355 | } while(0U) |
|
- | 356 | #endif /*USE_HAL_IRDA_REGISTER_CALLBACKS */ |
|
307 | 357 | ||
308 | /** @brief Flush the IRDA DR register |
358 | /** @brief Flush the IRDA DR register |
309 | * @param __HANDLE__: specifies the USART Handle. |
359 | * @param __HANDLE__ specifies the IRDA Handle. |
310 | * IRDA Handle selects the USARTx or UARTy peripheral |
360 | * IRDA Handle selects the USARTx or UARTy peripheral |
311 | * (USART,UART availability and x,y values depending on device). |
361 | * (USART,UART availability and x,y values depending on device). |
- | 362 | * @retval None |
|
312 | */ |
363 | */ |
313 | #define __HAL_IRDA_FLUSH_DRREGISTER(__HANDLE__) ((__HANDLE__)->Instance->DR) |
364 | #define __HAL_IRDA_FLUSH_DRREGISTER(__HANDLE__) ((__HANDLE__)->Instance->DR) |
314 | 365 | ||
315 | /** @brief Check whether the specified IRDA flag is set or not. |
366 | /** @brief Check whether the specified IRDA flag is set or not. |
316 | * @param __HANDLE__: specifies the IRDA Handle. |
367 | * @param __HANDLE__ specifies the IRDA Handle. |
317 | * IRDA Handle selects the USARTx or UARTy peripheral |
368 | * IRDA Handle selects the USARTx or UARTy peripheral |
318 | * (USART,UART availability and x,y values depending on device). |
369 | * (USART,UART availability and x,y values depending on device). |
319 | * @param __FLAG__: specifies the flag to check. |
370 | * @param __FLAG__ specifies the flag to check. |
320 | * This parameter can be one of the following values: |
371 | * This parameter can be one of the following values: |
321 | * @arg IRDA_FLAG_TXE: Transmit data register empty flag |
372 | * @arg IRDA_FLAG_TXE: Transmit data register empty flag |
322 | * @arg IRDA_FLAG_TC: Transmission Complete flag |
373 | * @arg IRDA_FLAG_TC: Transmission Complete flag |
323 | * @arg IRDA_FLAG_RXNE: Receive data register not empty flag |
374 | * @arg IRDA_FLAG_RXNE: Receive data register not empty flag |
324 | * @arg IRDA_FLAG_IDLE: Idle Line detection flag |
375 | * @arg IRDA_FLAG_IDLE: Idle Line detection flag |
Line 329... | Line 380... | ||
329 | * @retval The new state of __FLAG__ (TRUE or FALSE). |
380 | * @retval The new state of __FLAG__ (TRUE or FALSE). |
330 | */ |
381 | */ |
331 | #define __HAL_IRDA_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR & (__FLAG__)) == (__FLAG__)) |
382 | #define __HAL_IRDA_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR & (__FLAG__)) == (__FLAG__)) |
332 | 383 | ||
333 | /** @brief Clear the specified IRDA pending flag. |
384 | /** @brief Clear the specified IRDA pending flag. |
334 | * @param __HANDLE__: specifies the IRDA Handle. |
385 | * @param __HANDLE__ specifies the IRDA Handle. |
335 | * IRDA Handle selects the USARTx or UARTy peripheral |
386 | * IRDA Handle selects the USARTx or UARTy peripheral |
336 | * (USART,UART availability and x,y values depending on device). |
387 | * (USART,UART availability and x,y values depending on device). |
337 | * @param __FLAG__: specifies the flag to check. |
388 | * @param __FLAG__ specifies the flag to check. |
338 | * This parameter can be any combination of the following values: |
389 | * This parameter can be any combination of the following values: |
339 | * @arg IRDA_FLAG_TC: Transmission Complete flag. |
390 | * @arg IRDA_FLAG_TC: Transmission Complete flag. |
340 | * @arg IRDA_FLAG_RXNE: Receive data register not empty flag. |
391 | * @arg IRDA_FLAG_RXNE: Receive data register not empty flag. |
341 | * |
392 | * |
342 | * @note PE (Parity error), FE (Framing error), NE (Noise error), ORE (OverRun |
393 | * @note PE (Parity error), FE (Framing error), NE (Noise error), ORE (OverRun |
343 | * error) and IDLE (Idle line detected) flags are cleared by software |
394 | * error) and IDLE (Idle line detected) flags are cleared by software |
344 | * sequence: a read operation to USART_SR register followed by a read |
395 | * sequence: a read operation to USART_SR register followed by a read |
345 | * operation to USART_DR register. |
396 | * operation to USART_DR register. |
346 | * @note RXNE flag can be also cleared by a read to the USART_DR register. |
397 | * @note RXNE flag can be also cleared by a read to the USART_DR register. |
347 | * @note TC flag can be also cleared by software sequence: a read operation to |
398 | * @note TC flag can be also cleared by software sequence: a read operation to |
348 | * USART_SR register followed by a write operation to USART_DR register. |
399 | * USART_SR register followed by a write operation to USART_DR register. |
349 | * @note TXE flag is cleared only by a write to the USART_DR register. |
400 | * @note TXE flag is cleared only by a write to the USART_DR register. |
350 | * |
401 | * @retval None |
351 | */ |
402 | */ |
352 | #define __HAL_IRDA_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->SR = ~(__FLAG__)) |
403 | #define __HAL_IRDA_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->SR = ~(__FLAG__)) |
353 | 404 | ||
354 | /** @brief Clear the IRDA PE pending flag. |
405 | /** @brief Clear the IRDA PE pending flag. |
355 | * @param __HANDLE__: specifies the IRDA Handle. |
406 | * @param __HANDLE__ specifies the IRDA Handle. |
356 | * IRDA Handle selects the USARTx or UARTy peripheral |
407 | * IRDA Handle selects the USARTx or UARTy peripheral |
357 | * (USART,UART availability and x,y values depending on device). |
408 | * (USART,UART availability and x,y values depending on device). |
- | 409 | * @retval None |
|
358 | */ |
410 | */ |
359 | #define __HAL_IRDA_CLEAR_PEFLAG(__HANDLE__) \ |
411 | #define __HAL_IRDA_CLEAR_PEFLAG(__HANDLE__) \ |
360 | do{ \ |
412 | do{ \ |
361 | __IO uint32_t tmpreg = 0x00U; \ |
413 | __IO uint32_t tmpreg = 0x00U; \ |
362 | tmpreg = (__HANDLE__)->Instance->SR; \ |
414 | tmpreg = (__HANDLE__)->Instance->SR; \ |
363 | tmpreg = (__HANDLE__)->Instance->DR; \ |
415 | tmpreg = (__HANDLE__)->Instance->DR; \ |
364 | UNUSED(tmpreg); \ |
416 | UNUSED(tmpreg); \ |
365 | } while(0U) |
417 | } while(0U) |
366 | 418 | ||
367 | /** @brief Clear the IRDA FE pending flag. |
419 | /** @brief Clear the IRDA FE pending flag. |
368 | * @param __HANDLE__: specifies the IRDA Handle. |
420 | * @param __HANDLE__ specifies the IRDA Handle. |
369 | * IRDA Handle selects the USARTx or UARTy peripheral |
421 | * IRDA Handle selects the USARTx or UARTy peripheral |
370 | * (USART,UART availability and x,y values depending on device). |
422 | * (USART,UART availability and x,y values depending on device). |
- | 423 | * @retval None |
|
371 | */ |
424 | */ |
372 | #define __HAL_IRDA_CLEAR_FEFLAG(__HANDLE__) __HAL_IRDA_CLEAR_PEFLAG(__HANDLE__) |
425 | #define __HAL_IRDA_CLEAR_FEFLAG(__HANDLE__) __HAL_IRDA_CLEAR_PEFLAG(__HANDLE__) |
373 | 426 | ||
374 | /** @brief Clear the IRDA NE pending flag. |
427 | /** @brief Clear the IRDA NE pending flag. |
375 | * @param __HANDLE__: specifies the IRDA Handle. |
428 | * @param __HANDLE__ specifies the IRDA Handle. |
376 | * IRDA Handle selects the USARTx or UARTy peripheral |
429 | * IRDA Handle selects the USARTx or UARTy peripheral |
377 | * (USART,UART availability and x,y values depending on device). |
430 | * (USART,UART availability and x,y values depending on device). |
- | 431 | * @retval None |
|
378 | */ |
432 | */ |
379 | #define __HAL_IRDA_CLEAR_NEFLAG(__HANDLE__) __HAL_IRDA_CLEAR_PEFLAG(__HANDLE__) |
433 | #define __HAL_IRDA_CLEAR_NEFLAG(__HANDLE__) __HAL_IRDA_CLEAR_PEFLAG(__HANDLE__) |
380 | 434 | ||
381 | /** @brief Clear the IRDA ORE pending flag. |
435 | /** @brief Clear the IRDA ORE pending flag. |
382 | * @param __HANDLE__: specifies the IRDA Handle. |
436 | * @param __HANDLE__ specifies the IRDA Handle. |
383 | * IRDA Handle selects the USARTx or UARTy peripheral |
437 | * IRDA Handle selects the USARTx or UARTy peripheral |
384 | * (USART,UART availability and x,y values depending on device). |
438 | * (USART,UART availability and x,y values depending on device). |
- | 439 | * @retval None |
|
385 | */ |
440 | */ |
386 | #define __HAL_IRDA_CLEAR_OREFLAG(__HANDLE__) __HAL_IRDA_CLEAR_PEFLAG(__HANDLE__) |
441 | #define __HAL_IRDA_CLEAR_OREFLAG(__HANDLE__) __HAL_IRDA_CLEAR_PEFLAG(__HANDLE__) |
387 | 442 | ||
388 | /** @brief Clear the IRDA IDLE pending flag. |
443 | /** @brief Clear the IRDA IDLE pending flag. |
389 | * @param __HANDLE__: specifies the IRDA Handle. |
444 | * @param __HANDLE__ specifies the IRDA Handle. |
390 | * IRDA Handle selects the USARTx or UARTy peripheral |
445 | * IRDA Handle selects the USARTx or UARTy peripheral |
391 | * (USART,UART availability and x,y values depending on device). |
446 | * (USART,UART availability and x,y values depending on device). |
- | 447 | * @retval None |
|
392 | */ |
448 | */ |
393 | #define __HAL_IRDA_CLEAR_IDLEFLAG(__HANDLE__) __HAL_IRDA_CLEAR_PEFLAG(__HANDLE__) |
449 | #define __HAL_IRDA_CLEAR_IDLEFLAG(__HANDLE__) __HAL_IRDA_CLEAR_PEFLAG(__HANDLE__) |
394 | 450 | ||
395 | /** @brief Enable the specified IRDA interrupt. |
451 | /** @brief Enable the specified IRDA interrupt. |
396 | * @param __HANDLE__: specifies the IRDA Handle. |
452 | * @param __HANDLE__ specifies the IRDA Handle. |
397 | * IRDA Handle selects the USARTx or UARTy peripheral |
453 | * IRDA Handle selects the USARTx or UARTy peripheral |
398 | * (USART,UART availability and x,y values depending on device). |
454 | * (USART,UART availability and x,y values depending on device). |
399 | * @param __INTERRUPT__: specifies the IRDA interrupt source to enable. |
455 | * @param __INTERRUPT__ specifies the IRDA interrupt source to enable. |
400 | * This parameter can be one of the following values: |
456 | * This parameter can be one of the following values: |
401 | * @arg IRDA_IT_TXE: Transmit Data Register empty interrupt |
457 | * @arg IRDA_IT_TXE: Transmit Data Register empty interrupt |
402 | * @arg IRDA_IT_TC: Transmission complete interrupt |
458 | * @arg IRDA_IT_TC: Transmission complete interrupt |
403 | * @arg IRDA_IT_RXNE: Receive Data register not empty interrupt |
459 | * @arg IRDA_IT_RXNE: Receive Data register not empty interrupt |
404 | * @arg IRDA_IT_IDLE: Idle line detection interrupt |
460 | * @arg IRDA_IT_IDLE: Idle line detection interrupt |
405 | * @arg IRDA_IT_PE: Parity Error interrupt |
461 | * @arg IRDA_IT_PE: Parity Error interrupt |
406 | * @arg IRDA_IT_ERR: Error interrupt(Frame error, noise error, overrun error) |
462 | * @arg IRDA_IT_ERR: Error interrupt(Frame error, noise error, overrun error) |
- | 463 | * @retval None |
|
407 | */ |
464 | */ |
408 | #define __HAL_IRDA_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((((__INTERRUPT__) >> 28U) == IRDA_CR1_REG_INDEX)? ((__HANDLE__)->Instance->CR1 |= ((__INTERRUPT__) & IRDA_IT_MASK)): \ |
465 | #define __HAL_IRDA_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((((__INTERRUPT__) >> 28U) == IRDA_CR1_REG_INDEX)? ((__HANDLE__)->Instance->CR1 |= ((__INTERRUPT__) & IRDA_IT_MASK)): \ |
409 | (((__INTERRUPT__) >> 28U) == IRDA_CR2_REG_INDEX)? ((__HANDLE__)->Instance->CR2 |= ((__INTERRUPT__) & IRDA_IT_MASK)): \ |
466 | (((__INTERRUPT__) >> 28U) == IRDA_CR2_REG_INDEX)? ((__HANDLE__)->Instance->CR2 |= ((__INTERRUPT__) & IRDA_IT_MASK)): \ |
410 | ((__HANDLE__)->Instance->CR3 |= ((__INTERRUPT__) & IRDA_IT_MASK))) |
467 | ((__HANDLE__)->Instance->CR3 |= ((__INTERRUPT__) & IRDA_IT_MASK))) |
411 | /** @brief Disable the specified IRDA interrupt. |
468 | /** @brief Disable the specified IRDA interrupt. |
412 | * @param __HANDLE__: specifies the IRDA Handle. |
469 | * @param __HANDLE__ specifies the IRDA Handle. |
413 | * IRDA Handle selects the USARTx or UARTy peripheral |
470 | * IRDA Handle selects the USARTx or UARTy peripheral |
414 | * (USART,UART availability and x,y values depending on device). |
471 | * (USART,UART availability and x,y values depending on device). |
415 | * @param __INTERRUPT__: specifies the IRDA interrupt source to disable. |
472 | * @param __INTERRUPT__ specifies the IRDA interrupt source to disable. |
416 | * This parameter can be one of the following values: |
473 | * This parameter can be one of the following values: |
417 | * @arg IRDA_IT_TXE: Transmit Data Register empty interrupt |
474 | * @arg IRDA_IT_TXE: Transmit Data Register empty interrupt |
418 | * @arg IRDA_IT_TC: Transmission complete interrupt |
475 | * @arg IRDA_IT_TC: Transmission complete interrupt |
419 | * @arg IRDA_IT_RXNE: Receive Data register not empty interrupt |
476 | * @arg IRDA_IT_RXNE: Receive Data register not empty interrupt |
420 | * @arg IRDA_IT_IDLE: Idle line detection interrupt |
477 | * @arg IRDA_IT_IDLE: Idle line detection interrupt |
421 | * @arg IRDA_IT_PE: Parity Error interrupt |
478 | * @arg IRDA_IT_PE: Parity Error interrupt |
422 | * @arg IRDA_IT_ERR: Error interrupt(Frame error, noise error, overrun error) |
479 | * @arg IRDA_IT_ERR: Error interrupt(Frame error, noise error, overrun error) |
- | 480 | * @retval None |
|
423 | */ |
481 | */ |
424 | #define __HAL_IRDA_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((((__INTERRUPT__) >> 28U) == IRDA_CR1_REG_INDEX)? ((__HANDLE__)->Instance->CR1 &= ~((__INTERRUPT__) & IRDA_IT_MASK)): \ |
482 | #define __HAL_IRDA_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((((__INTERRUPT__) >> 28U) == IRDA_CR1_REG_INDEX)? ((__HANDLE__)->Instance->CR1 &= ~((__INTERRUPT__) & IRDA_IT_MASK)): \ |
425 | (((__INTERRUPT__) >> 28U) == IRDA_CR2_REG_INDEX)? ((__HANDLE__)->Instance->CR2 &= ~((__INTERRUPT__) & IRDA_IT_MASK)): \ |
483 | (((__INTERRUPT__) >> 28U) == IRDA_CR2_REG_INDEX)? ((__HANDLE__)->Instance->CR2 &= ~((__INTERRUPT__) & IRDA_IT_MASK)): \ |
426 | ((__HANDLE__)->Instance->CR3 &= ~ ((__INTERRUPT__) & IRDA_IT_MASK))) |
484 | ((__HANDLE__)->Instance->CR3 &= ~ ((__INTERRUPT__) & IRDA_IT_MASK))) |
427 | 485 | ||
428 | /** @brief Check whether the specified IRDA interrupt has occurred or not. |
486 | /** @brief Check whether the specified IRDA interrupt has occurred or not. |
429 | * @param __HANDLE__: specifies the IRDA Handle. |
487 | * @param __HANDLE__ specifies the IRDA Handle. |
430 | * IRDA Handle selects the USARTx or UARTy peripheral |
488 | * IRDA Handle selects the USARTx or UARTy peripheral |
431 | * (USART,UART availability and x,y values depending on device). |
489 | * (USART,UART availability and x,y values depending on device). |
432 | * @param __IT__: specifies the IRDA interrupt source to check. |
490 | * @param __IT__ specifies the IRDA interrupt source to check. |
433 | * This parameter can be one of the following values: |
491 | * This parameter can be one of the following values: |
434 | * @arg IRDA_IT_TXE: Transmit Data Register empty interrupt |
492 | * @arg IRDA_IT_TXE: Transmit Data Register empty interrupt |
435 | * @arg IRDA_IT_TC: Transmission complete interrupt |
493 | * @arg IRDA_IT_TC: Transmission complete interrupt |
436 | * @arg IRDA_IT_RXNE: Receive Data register not empty interrupt |
494 | * @arg IRDA_IT_RXNE: Receive Data register not empty interrupt |
437 | * @arg IRDA_IT_IDLE: Idle line detection interrupt |
495 | * @arg IRDA_IT_IDLE: Idle line detection interrupt |
Line 441... | Line 499... | ||
441 | */ |
499 | */ |
442 | #define __HAL_IRDA_GET_IT_SOURCE(__HANDLE__, __IT__) (((((__IT__) >> 28U) == IRDA_CR1_REG_INDEX)? (__HANDLE__)->Instance->CR1:(((((uint32_t)(__IT__)) >> 28U) == IRDA_CR2_REG_INDEX)? \ |
500 | #define __HAL_IRDA_GET_IT_SOURCE(__HANDLE__, __IT__) (((((__IT__) >> 28U) == IRDA_CR1_REG_INDEX)? (__HANDLE__)->Instance->CR1:(((((uint32_t)(__IT__)) >> 28U) == IRDA_CR2_REG_INDEX)? \ |
443 | (__HANDLE__)->Instance->CR2 : (__HANDLE__)->Instance->CR3)) & (((uint32_t)(__IT__)) & IRDA_IT_MASK)) |
501 | (__HANDLE__)->Instance->CR2 : (__HANDLE__)->Instance->CR3)) & (((uint32_t)(__IT__)) & IRDA_IT_MASK)) |
444 | 502 | ||
445 | /** @brief Enable UART/USART associated to IRDA Handle |
503 | /** @brief Enable UART/USART associated to IRDA Handle |
446 | * @param __HANDLE__: specifies the IRDA Handle. |
504 | * @param __HANDLE__ specifies the IRDA Handle. |
447 | * IRDA Handle selects the USARTx or UARTy peripheral |
505 | * IRDA Handle selects the USARTx or UARTy peripheral |
448 | * (USART,UART availability and x,y values depending on device). |
506 | * (USART,UART availability and x,y values depending on device). |
- | 507 | * @retval None |
|
449 | */ |
508 | */ |
450 | #define __HAL_IRDA_ENABLE(__HANDLE__) (SET_BIT((__HANDLE__)->Instance->CR1, USART_CR1_UE)) |
509 | #define __HAL_IRDA_ENABLE(__HANDLE__) (SET_BIT((__HANDLE__)->Instance->CR1, USART_CR1_UE)) |
451 | 510 | ||
452 | /** @brief Disable UART/USART associated to IRDA Handle |
511 | /** @brief Disable UART/USART associated to IRDA Handle |
453 | * @param __HANDLE__: specifies the IRDA Handle. |
512 | * @param __HANDLE__ specifies the IRDA Handle. |
454 | * IRDA Handle selects the USARTx or UARTy peripheral |
513 | * IRDA Handle selects the USARTx or UARTy peripheral |
455 | * (USART,UART availability and x,y values depending on device). |
514 | * (USART,UART availability and x,y values depending on device). |
- | 515 | * @retval None |
|
456 | */ |
516 | */ |
457 | #define __HAL_IRDA_DISABLE(__HANDLE__) (CLEAR_BIT((__HANDLE__)->Instance->CR1, USART_CR1_UE)) |
517 | #define __HAL_IRDA_DISABLE(__HANDLE__) (CLEAR_BIT((__HANDLE__)->Instance->CR1, USART_CR1_UE)) |
458 | 518 | ||
459 | /** |
519 | /** |
460 | * @} |
520 | * @} |
Line 462... | Line 522... | ||
462 | 522 | ||
463 | /* Exported functions --------------------------------------------------------*/ |
523 | /* Exported functions --------------------------------------------------------*/ |
464 | /** @addtogroup IRDA_Exported_Functions |
524 | /** @addtogroup IRDA_Exported_Functions |
465 | * @{ |
525 | * @{ |
466 | */ |
526 | */ |
467 | 527 | ||
468 | /** @addtogroup IRDA_Exported_Functions_Group1 |
528 | /** @addtogroup IRDA_Exported_Functions_Group1 |
469 | * @{ |
529 | * @{ |
470 | */ |
530 | */ |
471 | /* Initialization/de-initialization functions **********************************/ |
531 | /* Initialization/de-initialization functions **********************************/ |
472 | HAL_StatusTypeDef HAL_IRDA_Init(IRDA_HandleTypeDef *hirda); |
532 | HAL_StatusTypeDef HAL_IRDA_Init(IRDA_HandleTypeDef *hirda); |
473 | HAL_StatusTypeDef HAL_IRDA_DeInit(IRDA_HandleTypeDef *hirda); |
533 | HAL_StatusTypeDef HAL_IRDA_DeInit(IRDA_HandleTypeDef *hirda); |
474 | void HAL_IRDA_MspInit(IRDA_HandleTypeDef *hirda); |
534 | void HAL_IRDA_MspInit(IRDA_HandleTypeDef *hirda); |
475 | void HAL_IRDA_MspDeInit(IRDA_HandleTypeDef *hirda); |
535 | void HAL_IRDA_MspDeInit(IRDA_HandleTypeDef *hirda); |
- | 536 | ||
- | 537 | #if (USE_HAL_IRDA_REGISTER_CALLBACKS == 1) |
|
- | 538 | /* Callbacks Register/UnRegister functions ***********************************/ |
|
- | 539 | HAL_StatusTypeDef HAL_IRDA_RegisterCallback(IRDA_HandleTypeDef *hirda, HAL_IRDA_CallbackIDTypeDef CallbackID, pIRDA_CallbackTypeDef pCallback); |
|
- | 540 | HAL_StatusTypeDef HAL_IRDA_UnRegisterCallback(IRDA_HandleTypeDef *hirda, HAL_IRDA_CallbackIDTypeDef CallbackID); |
|
- | 541 | #endif /* USE_HAL_IRDA_REGISTER_CALLBACKS */ |
|
- | 542 | ||
476 | /** |
543 | /** |
477 | * @} |
544 | * @} |
478 | */ |
545 | */ |
479 | 546 | ||
480 | /** @addtogroup IRDA_Exported_Functions_Group2 |
547 | /** @addtogroup IRDA_Exported_Functions_Group2 |
Line 517... | Line 584... | ||
517 | /* Peripheral State functions **************************************************/ |
584 | /* Peripheral State functions **************************************************/ |
518 | HAL_IRDA_StateTypeDef HAL_IRDA_GetState(IRDA_HandleTypeDef *hirda); |
585 | HAL_IRDA_StateTypeDef HAL_IRDA_GetState(IRDA_HandleTypeDef *hirda); |
519 | uint32_t HAL_IRDA_GetError(IRDA_HandleTypeDef *hirda); |
586 | uint32_t HAL_IRDA_GetError(IRDA_HandleTypeDef *hirda); |
520 | /** |
587 | /** |
521 | * @} |
588 | * @} |
522 | */ |
589 | */ |
523 | 590 | ||
524 | /** |
591 | /** |
525 | * @} |
592 | * @} |
526 | */ |
593 | */ |
527 | 594 | ||
Line 531... | Line 598... | ||
531 | /** @defgroup IRDA_Private_Constants IRDA Private Constants |
598 | /** @defgroup IRDA_Private_Constants IRDA Private Constants |
532 | * @{ |
599 | * @{ |
533 | */ |
600 | */ |
534 | 601 | ||
535 | /** @brief IRDA interruptions flag mask |
602 | /** @brief IRDA interruptions flag mask |
536 | * |
603 | * |
537 | */ |
604 | */ |
538 | #define IRDA_IT_MASK 0x0000FFFFU |
605 | #define IRDA_IT_MASK ((uint32_t) USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_TCIE | USART_CR1_RXNEIE | \ |
- | 606 | USART_CR1_IDLEIE | USART_CR2_LBDIE | USART_CR3_CTSIE | USART_CR3_EIE ) |
|
539 | 607 | ||
540 | #define IRDA_CR1_REG_INDEX 1U |
608 | #define IRDA_CR1_REG_INDEX 1U |
541 | #define IRDA_CR2_REG_INDEX 2U |
609 | #define IRDA_CR2_REG_INDEX 2U |
542 | #define IRDA_CR3_REG_INDEX 3U |
610 | #define IRDA_CR3_REG_INDEX 3U |
543 | /** |
611 | /** |
544 | * @} |
612 | * @} |
545 | */ |
613 | */ |
546 | 614 | ||
547 | /* Private macros --------------------------------------------------------*/ |
615 | /* Private macros --------------------------------------------------------*/ |
548 | /** @defgroup IRDA_Private_Macros IRDA Private Macros |
616 | /** @defgroup IRDA_Private_Macros IRDA Private Macros |
549 | * @{ |
617 | * @{ |
550 | */ |
618 | */ |
551 | #define IS_IRDA_WORD_LENGTH(LENGTH) (((LENGTH) == IRDA_WORDLENGTH_8B) || \ |
619 | #define IS_IRDA_WORD_LENGTH(LENGTH) (((LENGTH) == IRDA_WORDLENGTH_8B) || \ |
552 | ((LENGTH) == IRDA_WORDLENGTH_9B)) |
620 | ((LENGTH) == IRDA_WORDLENGTH_9B)) |
- | 621 | ||
553 | #define IS_IRDA_PARITY(PARITY) (((PARITY) == IRDA_PARITY_NONE) || \ |
622 | #define IS_IRDA_PARITY(PARITY) (((PARITY) == IRDA_PARITY_NONE) || \ |
554 | ((PARITY) == IRDA_PARITY_EVEN) || \ |
623 | ((PARITY) == IRDA_PARITY_EVEN) || \ |
555 | ((PARITY) == IRDA_PARITY_ODD)) |
624 | ((PARITY) == IRDA_PARITY_ODD)) |
- | 625 | ||
556 | #define IS_IRDA_MODE(MODE) ((((MODE) & 0x0000FFF3U) == 0x00U) && ((MODE) != 0x00000000U)) |
626 | #define IS_IRDA_MODE(MODE) ((((MODE) & 0x0000FFF3U) == 0x00U) && ((MODE) != 0x00000000U)) |
- | 627 | ||
557 | #define IS_IRDA_POWERMODE(MODE) (((MODE) == IRDA_POWERMODE_LOWPOWER) || \ |
628 | #define IS_IRDA_POWERMODE(MODE) (((MODE) == IRDA_POWERMODE_LOWPOWER) || \ |
558 | ((MODE) == IRDA_POWERMODE_NORMAL)) |
629 | ((MODE) == IRDA_POWERMODE_NORMAL)) |
- | 630 | ||
559 | #define IS_IRDA_BAUDRATE(BAUDRATE) ((BAUDRATE) < 115201U) |
631 | #define IS_IRDA_BAUDRATE(BAUDRATE) ((BAUDRATE) < 115201U) |
560 | 632 | ||
561 | #define IRDA_DIV(_PCLK_, _BAUD_) (((_PCLK_)*25U)/(4U*(_BAUD_))) |
633 | #define IRDA_DIV(_PCLK_, _BAUD_) (((_PCLK_)*25U)/(4U*(_BAUD_))) |
- | 634 | ||
562 | #define IRDA_DIVMANT(_PCLK_, _BAUD_) (IRDA_DIV((_PCLK_), (_BAUD_))/100U) |
635 | #define IRDA_DIVMANT(_PCLK_, _BAUD_) (IRDA_DIV((_PCLK_), (_BAUD_))/100U) |
- | 636 | ||
563 | #define IRDA_DIVFRAQ(_PCLK_, _BAUD_) (((IRDA_DIV((_PCLK_), (_BAUD_)) - (IRDA_DIVMANT((_PCLK_), (_BAUD_)) * 100U)) * 16U + 50U) / 100U) |
637 | #define IRDA_DIVFRAQ(_PCLK_, _BAUD_) (((IRDA_DIV((_PCLK_), (_BAUD_)) - (IRDA_DIVMANT((_PCLK_), (_BAUD_)) * 100U)) * 16U + 50U) / 100U) |
- | 638 | ||
564 | /* UART BRR = mantissa + overflow + fraction |
639 | /* UART BRR = mantissa + overflow + fraction |
565 | = (UART DIVMANT << 4) + (UART DIVFRAQ & 0xF0) + (UART DIVFRAQ & 0x0FU) */ |
640 | = (UART DIVMANT << 4) + (UART DIVFRAQ & 0xF0) + (UART DIVFRAQ & 0x0FU) */ |
566 | #define IRDA_BRR(_PCLK_, _BAUD_) (((IRDA_DIVMANT((_PCLK_), (_BAUD_)) << 4U) + \ |
641 | #define IRDA_BRR(_PCLK_, _BAUD_) (((IRDA_DIVMANT((_PCLK_), (_BAUD_)) << 4U) + \ |
567 | (IRDA_DIVFRAQ((_PCLK_), (_BAUD_)) & 0xF0U)) + \ |
642 | (IRDA_DIVFRAQ((_PCLK_), (_BAUD_)) & 0xF0U)) + \ |
568 | (IRDA_DIVFRAQ((_PCLK_), (_BAUD_)) & 0x0FU)) |
643 | (IRDA_DIVFRAQ((_PCLK_), (_BAUD_)) & 0x0FU)) |
569 | 644 | ||
570 | /** |
645 | /** |
571 | * @} |
646 | * @} |
572 | */ |
647 | */ |
573 | 648 | ||
Line 580... | Line 655... | ||
580 | * @} |
655 | * @} |
581 | */ |
656 | */ |
582 | 657 | ||
583 | /** |
658 | /** |
584 | * @} |
659 | * @} |
585 | */ |
660 | */ |
586 | 661 | ||
587 | /** |
662 | /** |
588 | * @} |
663 | * @} |
589 | */ |
664 | */ |
590 | 665 |