RTEMS 6.1-rc7
Loading...
Searching...
No Matches
stm32h7xx_hal_usart_ex.h
Go to the documentation of this file.
1
19/* Define to prevent recursive inclusion -------------------------------------*/
20#ifndef STM32H7xx_HAL_USART_EX_H
21#define STM32H7xx_HAL_USART_EX_H
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27/* Includes ------------------------------------------------------------------*/
28#include "stm32h7xx_hal_def.h"
29
38/* Exported types ------------------------------------------------------------*/
39/* Exported constants --------------------------------------------------------*/
49#define USART_WORDLENGTH_7B (USART_CR1_M1)
50#define USART_WORDLENGTH_8B (0x00000000U)
51#define USART_WORDLENGTH_9B (USART_CR1_M0)
60#define USART_NSS_HARD 0x00000000U
61#define USART_NSS_SOFT USART_CR2_DIS_NSS
72#define USART_SLAVEMODE_DISABLE 0x00000000U
73#define USART_SLAVEMODE_ENABLE USART_CR2_SLVEN
83#define USART_FIFOMODE_DISABLE 0x00000000U
84#define USART_FIFOMODE_ENABLE USART_CR1_FIFOEN
94#define USART_TXFIFO_THRESHOLD_1_8 0x00000000U
95#define USART_TXFIFO_THRESHOLD_1_4 USART_CR3_TXFTCFG_0
96#define USART_TXFIFO_THRESHOLD_1_2 USART_CR3_TXFTCFG_1
97#define USART_TXFIFO_THRESHOLD_3_4 (USART_CR3_TXFTCFG_0|USART_CR3_TXFTCFG_1)
98#define USART_TXFIFO_THRESHOLD_7_8 USART_CR3_TXFTCFG_2
99#define USART_TXFIFO_THRESHOLD_8_8 (USART_CR3_TXFTCFG_2|USART_CR3_TXFTCFG_0)
109#define USART_RXFIFO_THRESHOLD_1_8 0x00000000U
110#define USART_RXFIFO_THRESHOLD_1_4 USART_CR3_RXFTCFG_0
111#define USART_RXFIFO_THRESHOLD_1_2 USART_CR3_RXFTCFG_1
112#define USART_RXFIFO_THRESHOLD_3_4 (USART_CR3_RXFTCFG_0|USART_CR3_RXFTCFG_1)
113#define USART_RXFIFO_THRESHOLD_7_8 USART_CR3_RXFTCFG_2
114#define USART_RXFIFO_THRESHOLD_8_8 (USART_CR3_RXFTCFG_2|USART_CR3_RXFTCFG_0)
123/* Private macros ------------------------------------------------------------*/
138#define USART_MASK_COMPUTATION(__HANDLE__) \
139 do { \
140 if ((__HANDLE__)->Init.WordLength == USART_WORDLENGTH_9B) \
141 { \
142 if ((__HANDLE__)->Init.Parity == USART_PARITY_NONE) \
143 { \
144 (__HANDLE__)->Mask = 0x01FFU; \
145 } \
146 else \
147 { \
148 (__HANDLE__)->Mask = 0x00FFU; \
149 } \
150 } \
151 else if ((__HANDLE__)->Init.WordLength == USART_WORDLENGTH_8B) \
152 { \
153 if ((__HANDLE__)->Init.Parity == USART_PARITY_NONE) \
154 { \
155 (__HANDLE__)->Mask = 0x00FFU; \
156 } \
157 else \
158 { \
159 (__HANDLE__)->Mask = 0x007FU; \
160 } \
161 } \
162 else if ((__HANDLE__)->Init.WordLength == USART_WORDLENGTH_7B) \
163 { \
164 if ((__HANDLE__)->Init.Parity == USART_PARITY_NONE) \
165 { \
166 (__HANDLE__)->Mask = 0x007FU; \
167 } \
168 else \
169 { \
170 (__HANDLE__)->Mask = 0x003FU; \
171 } \
172 } \
173 else \
174 { \
175 (__HANDLE__)->Mask = 0x0000U; \
176 } \
177 } while(0U)
178
184#define IS_USART_WORD_LENGTH(__LENGTH__) (((__LENGTH__) == USART_WORDLENGTH_7B) || \
185 ((__LENGTH__) == USART_WORDLENGTH_8B) || \
186 ((__LENGTH__) == USART_WORDLENGTH_9B))
187
193#define IS_USART_NSS(__NSS__) (((__NSS__) == USART_NSS_HARD) || \
194 ((__NSS__) == USART_NSS_SOFT))
195
201#define IS_USART_SLAVEMODE(__STATE__) (((__STATE__) == USART_SLAVEMODE_DISABLE ) || \
202 ((__STATE__) == USART_SLAVEMODE_ENABLE))
203
209#define IS_USART_FIFO_MODE_STATE(__STATE__) (((__STATE__) == USART_FIFOMODE_DISABLE ) || \
210 ((__STATE__) == USART_FIFOMODE_ENABLE))
211
217#define IS_USART_TXFIFO_THRESHOLD(__THRESHOLD__) (((__THRESHOLD__) == USART_TXFIFO_THRESHOLD_1_8) || \
218 ((__THRESHOLD__) == USART_TXFIFO_THRESHOLD_1_4) || \
219 ((__THRESHOLD__) == USART_TXFIFO_THRESHOLD_1_2) || \
220 ((__THRESHOLD__) == USART_TXFIFO_THRESHOLD_3_4) || \
221 ((__THRESHOLD__) == USART_TXFIFO_THRESHOLD_7_8) || \
222 ((__THRESHOLD__) == USART_TXFIFO_THRESHOLD_8_8))
223
229#define IS_USART_RXFIFO_THRESHOLD(__THRESHOLD__) (((__THRESHOLD__) == USART_RXFIFO_THRESHOLD_1_8) || \
230 ((__THRESHOLD__) == USART_RXFIFO_THRESHOLD_1_4) || \
231 ((__THRESHOLD__) == USART_RXFIFO_THRESHOLD_1_2) || \
232 ((__THRESHOLD__) == USART_RXFIFO_THRESHOLD_3_4) || \
233 ((__THRESHOLD__) == USART_RXFIFO_THRESHOLD_7_8) || \
234 ((__THRESHOLD__) == USART_RXFIFO_THRESHOLD_8_8))
239/* Exported functions --------------------------------------------------------*/
248/* IO operation functions *****************************************************/
249void HAL_USARTEx_RxFifoFullCallback(USART_HandleTypeDef *husart);
250void HAL_USARTEx_TxFifoEmptyCallback(USART_HandleTypeDef *husart);
251
260/* Peripheral Control functions ***********************************************/
261HAL_StatusTypeDef HAL_USARTEx_EnableSlaveMode(USART_HandleTypeDef *husart);
262HAL_StatusTypeDef HAL_USARTEx_DisableSlaveMode(USART_HandleTypeDef *husart);
263HAL_StatusTypeDef HAL_USARTEx_ConfigNSS(USART_HandleTypeDef *husart, uint32_t NSSConfig);
264HAL_StatusTypeDef HAL_USARTEx_EnableFifoMode(USART_HandleTypeDef *husart);
265HAL_StatusTypeDef HAL_USARTEx_DisableFifoMode(USART_HandleTypeDef *husart);
266HAL_StatusTypeDef HAL_USARTEx_SetTxFifoThreshold(USART_HandleTypeDef *husart, uint32_t Threshold);
267HAL_StatusTypeDef HAL_USARTEx_SetRxFifoThreshold(USART_HandleTypeDef *husart, uint32_t Threshold);
268
285#ifdef __cplusplus
286}
287#endif
288
289#endif /* STM32H7xx_HAL_USART_EX_H */
290
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef
HAL Status structures definition.
Definition: stm32h7xx_hal_def.h:47
USART handle Structure definition.
Definition: stm32h7xx_hal_usart.h:125