HAL
Select one of the symbols to view example projects that use it.
 
Outline
#define STM32F4xx_HAL_I2S_EX_H
#include "stm32f4xx_hal_def.h"
Exported macros
#define I2SxEXT
#define __HAL_I2SEXT_ENABLE
#define __HAL_I2SEXT_DISABLE
#define __HAL_I2SEXT_ENABLE_IT
#define __HAL_I2SEXT_DISABLE_IT
#define __HAL_I2SEXT_GET_FLAG
Exported functions
Private macros
Files
loading...
SourceVuSTM32 Libraries and SamplesHALInc/stm32f4xx_hal_i2s_ex.h
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/** ****************************************************************************** * @file stm32f4xx_hal_i2s_ex.h * @author MCD Application Team * @brief Header file of I2S HAL module. ****************************************************************************** * @attention * * Copyright (c) 2016 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with this software, it is provided AS-IS. * ****************************************************************************** *//* ... */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef STM32F4xx_HAL_I2S_EX_H #define STM32F4xx_HAL_I2S_EX_H #ifdef __cplusplus extern "C" { #endif /* Includes ------------------------------------------------------------------*/ #include "stm32f4xx_hal_def.h" /** @addtogroup STM32F4xx_HAL_Driver * @{ *//* ... */ #if defined(SPI_I2S_FULLDUPLEX_SUPPORT) /** @addtogroup I2SEx I2SEx * @{ *//* ... */ /* Exported types ------------------------------------------------------------*/ /* Exported constants --------------------------------------------------------*/ /* Exported macros -----------------------------------------------------------*/ /** @defgroup I2SEx_Exported_Macros I2S Extended Exported Macros * @{ *//* ... */ #define I2SxEXT(__INSTANCE__) ((__INSTANCE__) == (SPI2)? (SPI_TypeDef *)(I2S2ext_BASE): (SPI_TypeDef *)(I2S3ext_BASE)) /** @brief Enable or disable the specified I2SExt peripheral. * @param __HANDLE__ specifies the I2S Handle. * @retval None *//* ... */ #define __HAL_I2SEXT_ENABLE(__HANDLE__) (I2SxEXT((__HANDLE__)->Instance)->I2SCFGR |= SPI_I2SCFGR_I2SE) #define __HAL_I2SEXT_DISABLE(__HANDLE__) (I2SxEXT((__HANDLE__)->Instance)->I2SCFGR &= ~SPI_I2SCFGR_I2SE) /** @brief Enable or disable the specified I2SExt interrupts. * @param __HANDLE__ specifies the I2S Handle. * @param __INTERRUPT__ specifies the interrupt source to enable or disable. * This parameter can be one of the following values: * @arg I2S_IT_TXE: Tx buffer empty interrupt enable * @arg I2S_IT_RXNE: RX buffer not empty interrupt enable * @arg I2S_IT_ERR: Error interrupt enable * @retval None *//* ... */ #define __HAL_I2SEXT_ENABLE_IT(__HANDLE__, __INTERRUPT__) (I2SxEXT((__HANDLE__)->Instance)->CR2 |= (__INTERRUPT__)) #define __HAL_I2SEXT_DISABLE_IT(__HANDLE__, __INTERRUPT__) (I2SxEXT((__HANDLE__)->Instance)->CR2 &= ~(__INTERRUPT__)) /** @brief Checks if the specified I2SExt interrupt source is enabled or disabled. * @param __HANDLE__ specifies the I2S Handle. * This parameter can be I2S where x: 1, 2, or 3 to select the I2S peripheral. * @param __INTERRUPT__ specifies the I2S interrupt source to check. * This parameter can be one of the following values: * @arg I2S_IT_TXE: Tx buffer empty interrupt enable * @arg I2S_IT_RXNE: RX buffer not empty interrupt enable * @arg I2S_IT_ERR: Error interrupt enable * @retval The new state of __IT__ (TRUE or FALSE). *//* ... */ #define __HAL_I2SEXT_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((I2SxEXT((__HANDLE__)->Instance)->CR2\ & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)... /** @brief Checks whether the specified I2SExt flag is set or not. * @param __HANDLE__ specifies the I2S Handle. * @param __FLAG__ specifies the flag to check. * This parameter can be one of the following values: * @arg I2S_FLAG_RXNE: Receive buffer not empty flag * @arg I2S_FLAG_TXE: Transmit buffer empty flag * @arg I2S_FLAG_UDR: Underrun flag * @arg I2S_FLAG_OVR: Overrun flag * @arg I2S_FLAG_FRE: Frame error flag * @arg I2S_FLAG_CHSIDE: Channel Side flag * @arg I2S_FLAG_BSY: Busy flag * @retval The new state of __FLAG__ (TRUE or FALSE). *//* ... */ #define __HAL_I2SEXT_GET_FLAG(__HANDLE__, __FLAG__) (((I2SxEXT((__HANDLE__)->Instance)->SR) & (__FLAG__)) == (__FLAG__)) /** @brief Clears the I2SExt OVR pending flag. * @param __HANDLE__ specifies the I2S Handle. * @retval None *//* ... */ #define __HAL_I2SEXT_CLEAR_OVRFLAG(__HANDLE__) do{ \ __IO uint32_t tmpreg_ovr = 0x00U; \ tmpreg_ovr = I2SxEXT((__HANDLE__)->Instance)->DR;\ tmpreg_ovr = I2SxEXT((__HANDLE__)->Instance)->SR;\ UNUSED(tmpreg_ovr); \ ...}while(0U)... /** @brief Clears the I2SExt UDR pending flag. * @param __HANDLE__ specifies the I2S Handle. * @retval None *//* ... */ #define __HAL_I2SEXT_CLEAR_UDRFLAG(__HANDLE__) do{ \ __IO uint32_t tmpreg_udr = 0x00U; \ tmpreg_udr = I2SxEXT((__HANDLE__)->Instance)->SR;\ UNUSED(tmpreg_udr); \ ...}while(0U)... /** @brief Flush the I2S and I2SExt DR Registers. * @param __HANDLE__ specifies the I2S Handle. * @retval None *//* ... */ #define __HAL_I2SEXT_FLUSH_RX_DR(__HANDLE__) do{ \ __IO uint32_t tmpreg_dr = 0x00U; \ tmpreg_dr = I2SxEXT((__HANDLE__)->Instance)->DR; \ tmpreg_dr = ((__HANDLE__)->Instance->DR); \ UNUSED(tmpreg_dr); \ ...}while(0U)... 10 defines/** * @} *//* ... */ Exported macros /* Exported functions --------------------------------------------------------*/ /** @addtogroup I2SEx_Exported_Functions I2S Extended Exported Functions * @{ *//* ... */ /** @addtogroup I2SEx_Exported_Functions_Group1 I2S Extended IO operation functions * @{ *//* ... */ /* Extended features functions *************************************************/ /* Blocking mode: Polling */ HAL_StatusTypeDef HAL_I2SEx_TransmitReceive(I2S_HandleTypeDef *hi2s, uint16_t *pTxData, uint16_t *pRxData, uint16_t Size, uint32_t Timeout); /* Non-Blocking mode: Interrupt */ HAL_StatusTypeDef HAL_I2SEx_TransmitReceive_IT(I2S_HandleTypeDef *hi2s, uint16_t *pTxData, uint16_t *pRxData, uint16_t Size); /* Non-Blocking mode: DMA */ HAL_StatusTypeDef HAL_I2SEx_TransmitReceive_DMA(I2S_HandleTypeDef *hi2s, uint16_t *pTxData, uint16_t *pRxData, uint16_t Size); /* I2S IRQHandler and Callbacks used in non blocking modes (Interrupt and DMA) */ void HAL_I2SEx_FullDuplex_IRQHandler(I2S_HandleTypeDef *hi2s); void HAL_I2SEx_TxRxHalfCpltCallback(I2S_HandleTypeDef *hi2s); void HAL_I2SEx_TxRxCpltCallback(I2S_HandleTypeDef *hi2s); /** * @} *//* ... */ /** * @} *//* ... */ Exported functions/* Private types -------------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/ /* Private constants ---------------------------------------------------------*/ /* Private macros ------------------------------------------------------------*/ /** * @} *//* ... */ Private macros /* Private functions ---------------------------------------------------------*/ /** * @} *//* ... */ /* ... */ #endif /* SPI_I2S_FULLDUPLEX_SUPPORT */ /** * @} *//* ... */ #ifdef __cplusplus }extern "C" { ... } #endif /* ... */ #endif /* STM32F4xx_HAL_I2S_EX_H */
Details
Show:
from
Types: Columns:
This file uses the notable symbols shown below. Click anywhere in the file to view more details.