]> jspc29.x-matter.uni-frankfurt.de Git - mvd_firmware.git/blob
6056c4c6baaa87e94570b6a3c96b41c3bcb72cb0
[mvd_firmware.git] /
1 /**\r
2   ******************************************************************************\r
3   * @file    stm32f10x_spi.h\r
4   * @author  MCD Application Team\r
5   * @version V3.5.0\r
6   * @date    11-March-2011\r
7   * @brief   This file contains all the functions prototypes for the SPI firmware \r
8   *          library.\r
9   ******************************************************************************\r
10   * @attention\r
11   *\r
12   * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS\r
13   * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE\r
14   * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY\r
15   * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING\r
16   * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE\r
17   * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.\r
18   *\r
19   * <h2><center>&copy; COPYRIGHT 2011 STMicroelectronics</center></h2>\r
20   ******************************************************************************\r
21   */\r
22 \r
23 /* Define to prevent recursive inclusion -------------------------------------*/\r
24 #ifndef __STM32F10x_SPI_H\r
25 #define __STM32F10x_SPI_H\r
26 \r
27 #ifdef __cplusplus\r
28  extern "C" {\r
29 #endif\r
30 \r
31 /* Includes ------------------------------------------------------------------*/\r
32 #include "stm32f10x.h"\r
33 \r
34 /** @addtogroup STM32F10x_StdPeriph_Driver\r
35   * @{\r
36   */\r
37 \r
38 /** @addtogroup SPI\r
39   * @{\r
40   */ \r
41 \r
42 /** @defgroup SPI_Exported_Types\r
43   * @{\r
44   */\r
45 \r
46 /** \r
47   * @brief  SPI Init structure definition  \r
48   */\r
49 \r
50 typedef struct\r
51 {\r
52   uint16_t SPI_Direction;           /*!< Specifies the SPI unidirectional or bidirectional data mode.\r
53                                          This parameter can be a value of @ref SPI_data_direction */\r
54 \r
55   uint16_t SPI_Mode;                /*!< Specifies the SPI operating mode.\r
56                                          This parameter can be a value of @ref SPI_mode */\r
57 \r
58   uint16_t SPI_DataSize;            /*!< Specifies the SPI data size.\r
59                                          This parameter can be a value of @ref SPI_data_size */\r
60 \r
61   uint16_t SPI_CPOL;                /*!< Specifies the serial clock steady state.\r
62                                          This parameter can be a value of @ref SPI_Clock_Polarity */\r
63 \r
64   uint16_t SPI_CPHA;                /*!< Specifies the clock active edge for the bit capture.\r
65                                          This parameter can be a value of @ref SPI_Clock_Phase */\r
66 \r
67   uint16_t SPI_NSS;                 /*!< Specifies whether the NSS signal is managed by\r
68                                          hardware (NSS pin) or by software using the SSI bit.\r
69                                          This parameter can be a value of @ref SPI_Slave_Select_management */\r
70  \r
71   uint16_t SPI_BaudRatePrescaler;   /*!< Specifies the Baud Rate prescaler value which will be\r
72                                          used to configure the transmit and receive SCK clock.\r
73                                          This parameter can be a value of @ref SPI_BaudRate_Prescaler.\r
74                                          @note The communication clock is derived from the master\r
75                                                clock. The slave clock does not need to be set. */\r
76 \r
77   uint16_t SPI_FirstBit;            /*!< Specifies whether data transfers start from MSB or LSB bit.\r
78                                          This parameter can be a value of @ref SPI_MSB_LSB_transmission */\r
79 \r
80   uint16_t SPI_CRCPolynomial;       /*!< Specifies the polynomial used for the CRC calculation. */\r
81 }SPI_InitTypeDef;\r
82 \r
83 /** \r
84   * @brief  I2S Init structure definition  \r
85   */\r
86 \r
87 typedef struct\r
88 {\r
89 \r
90   uint16_t I2S_Mode;         /*!< Specifies the I2S operating mode.\r
91                                   This parameter can be a value of @ref I2S_Mode */\r
92 \r
93   uint16_t I2S_Standard;     /*!< Specifies the standard used for the I2S communication.\r
94                                   This parameter can be a value of @ref I2S_Standard */\r
95 \r
96   uint16_t I2S_DataFormat;   /*!< Specifies the data format for the I2S communication.\r
97                                   This parameter can be a value of @ref I2S_Data_Format */\r
98 \r
99   uint16_t I2S_MCLKOutput;   /*!< Specifies whether the I2S MCLK output is enabled or not.\r
100                                   This parameter can be a value of @ref I2S_MCLK_Output */\r
101 \r
102   uint32_t I2S_AudioFreq;    /*!< Specifies the frequency selected for the I2S communication.\r
103                                   This parameter can be a value of @ref I2S_Audio_Frequency */\r
104 \r
105   uint16_t I2S_CPOL;         /*!< Specifies the idle state of the I2S clock.\r
106                                   This parameter can be a value of @ref I2S_Clock_Polarity */\r
107 }I2S_InitTypeDef;\r
108 \r
109 /**\r
110   * @}\r
111   */\r
112 \r
113 /** @defgroup SPI_Exported_Constants\r
114   * @{\r
115   */\r
116 \r
117 #define IS_SPI_ALL_PERIPH(PERIPH) (((PERIPH) == SPI1) || \\r
118                                    ((PERIPH) == SPI2) || \\r
119                                    ((PERIPH) == SPI3))\r
120 \r
121 #define IS_SPI_23_PERIPH(PERIPH) (((PERIPH) == SPI2) || \\r
122                                   ((PERIPH) == SPI3))\r
123 \r
124 /** @defgroup SPI_data_direction \r
125   * @{\r
126   */\r
127   \r
128 #define SPI_Direction_2Lines_FullDuplex ((uint16_t)0x0000)\r
129 #define SPI_Direction_2Lines_RxOnly     ((uint16_t)0x0400)\r
130 #define SPI_Direction_1Line_Rx          ((uint16_t)0x8000)\r
131 #define SPI_Direction_1Line_Tx          ((uint16_t)0xC000)\r
132 #define IS_SPI_DIRECTION_MODE(MODE) (((MODE) == SPI_Direction_2Lines_FullDuplex) || \\r
133                                      ((MODE) == SPI_Direction_2Lines_RxOnly) || \\r
134                                      ((MODE) == SPI_Direction_1Line_Rx) || \\r
135                                      ((MODE) == SPI_Direction_1Line_Tx))\r
136 /**\r
137   * @}\r
138   */\r
139 \r
140 /** @defgroup SPI_mode \r
141   * @{\r
142   */\r
143 \r
144 #define SPI_Mode_Master                 ((uint16_t)0x0104)\r
145 #define SPI_Mode_Slave                  ((uint16_t)0x0000)\r
146 #define IS_SPI_MODE(MODE) (((MODE) == SPI_Mode_Master) || \\r
147                            ((MODE) == SPI_Mode_Slave))\r
148 /**\r
149   * @}\r
150   */\r
151 \r
152 /** @defgroup SPI_data_size \r
153   * @{\r
154   */\r
155 \r
156 #define SPI_DataSize_16b                ((uint16_t)0x0800)\r
157 #define SPI_DataSize_8b                 ((uint16_t)0x0000)\r
158 #define IS_SPI_DATASIZE(DATASIZE) (((DATASIZE) == SPI_DataSize_16b) || \\r
159                                    ((DATASIZE) == SPI_DataSize_8b))\r
160 /**\r
161   * @}\r
162   */ \r
163 \r
164 /** @defgroup SPI_Clock_Polarity \r
165   * @{\r
166   */\r
167 \r
168 #define SPI_CPOL_Low                    ((uint16_t)0x0000)\r
169 #define SPI_CPOL_High                   ((uint16_t)0x0002)\r
170 #define IS_SPI_CPOL(CPOL) (((CPOL) == SPI_CPOL_Low) || \\r
171                            ((CPOL) == SPI_CPOL_High))\r
172 /**\r
173   * @}\r
174   */\r
175 \r
176 /** @defgroup SPI_Clock_Phase \r
177   * @{\r
178   */\r
179 \r
180 #define SPI_CPHA_1Edge                  ((uint16_t)0x0000)\r
181 #define SPI_CPHA_2Edge                  ((uint16_t)0x0001)\r
182 #define IS_SPI_CPHA(CPHA) (((CPHA) == SPI_CPHA_1Edge) || \\r
183                            ((CPHA) == SPI_CPHA_2Edge))\r
184 /**\r
185   * @}\r
186   */\r
187 \r
188 /** @defgroup SPI_Slave_Select_management \r
189   * @{\r
190   */\r
191 \r
192 #define SPI_NSS_Soft                    ((uint16_t)0x0200)\r
193 #define SPI_NSS_Hard                    ((uint16_t)0x0000)\r
194 #define IS_SPI_NSS(NSS) (((NSS) == SPI_NSS_Soft) || \\r
195                          ((NSS) == SPI_NSS_Hard))\r
196 /**\r
197   * @}\r
198   */ \r
199 \r
200 /** @defgroup SPI_BaudRate_Prescaler \r
201   * @{\r
202   */\r
203 \r
204 #define SPI_BaudRatePrescaler_2         ((uint16_t)0x0000)\r
205 #define SPI_BaudRatePrescaler_4         ((uint16_t)0x0008)\r
206 #define SPI_BaudRatePrescaler_8         ((uint16_t)0x0010)\r
207 #define SPI_BaudRatePrescaler_16        ((uint16_t)0x0018)\r
208 #define SPI_BaudRatePrescaler_32        ((uint16_t)0x0020)\r
209 #define SPI_BaudRatePrescaler_64        ((uint16_t)0x0028)\r
210 #define SPI_BaudRatePrescaler_128       ((uint16_t)0x0030)\r
211 #define SPI_BaudRatePrescaler_256       ((uint16_t)0x0038)\r
212 #define IS_SPI_BAUDRATE_PRESCALER(PRESCALER) (((PRESCALER) == SPI_BaudRatePrescaler_2) || \\r
213                                               ((PRESCALER) == SPI_BaudRatePrescaler_4) || \\r
214                                               ((PRESCALER) == SPI_BaudRatePrescaler_8) || \\r
215                                               ((PRESCALER) == SPI_BaudRatePrescaler_16) || \\r
216                                               ((PRESCALER) == SPI_BaudRatePrescaler_32) || \\r
217                                               ((PRESCALER) == SPI_BaudRatePrescaler_64) || \\r
218                                               ((PRESCALER) == SPI_BaudRatePrescaler_128) || \\r
219                                               ((PRESCALER) == SPI_BaudRatePrescaler_256))\r
220 /**\r
221   * @}\r
222   */ \r
223 \r
224 /** @defgroup SPI_MSB_LSB_transmission \r
225   * @{\r
226   */\r
227 \r
228 #define SPI_FirstBit_MSB                ((uint16_t)0x0000)\r
229 #define SPI_FirstBit_LSB                ((uint16_t)0x0080)\r
230 #define IS_SPI_FIRST_BIT(BIT) (((BIT) == SPI_FirstBit_MSB) || \\r
231                                ((BIT) == SPI_FirstBit_LSB))\r
232 /**\r
233   * @}\r
234   */\r
235 \r
236 /** @defgroup I2S_Mode \r
237   * @{\r
238   */\r
239 \r
240 #define I2S_Mode_SlaveTx                ((uint16_t)0x0000)\r
241 #define I2S_Mode_SlaveRx                ((uint16_t)0x0100)\r
242 #define I2S_Mode_MasterTx               ((uint16_t)0x0200)\r
243 #define I2S_Mode_MasterRx               ((uint16_t)0x0300)\r
244 #define IS_I2S_MODE(MODE) (((MODE) == I2S_Mode_SlaveTx) || \\r
245                            ((MODE) == I2S_Mode_SlaveRx) || \\r
246                            ((MODE) == I2S_Mode_MasterTx) || \\r
247                            ((MODE) == I2S_Mode_MasterRx) )\r
248 /**\r
249   * @}\r
250   */\r
251 \r
252 /** @defgroup I2S_Standard \r
253   * @{\r
254   */\r
255 \r
256 #define I2S_Standard_Phillips           ((uint16_t)0x0000)\r
257 #define I2S_Standard_MSB                ((uint16_t)0x0010)\r
258 #define I2S_Standard_LSB                ((uint16_t)0x0020)\r
259 #define I2S_Standard_PCMShort           ((uint16_t)0x0030)\r
260 #define I2S_Standard_PCMLong            ((uint16_t)0x00B0)\r
261 #define IS_I2S_STANDARD(STANDARD) (((STANDARD) == I2S_Standard_Phillips) || \\r
262                                    ((STANDARD) == I2S_Standard_MSB) || \\r
263                                    ((STANDARD) == I2S_Standard_LSB) || \\r
264                                    ((STANDARD) == I2S_Standard_PCMShort) || \\r
265                                    ((STANDARD) == I2S_Standard_PCMLong))\r
266 /**\r
267   * @}\r
268   */\r
269 \r
270 /** @defgroup I2S_Data_Format \r
271   * @{\r
272   */\r
273 \r
274 #define I2S_DataFormat_16b              ((uint16_t)0x0000)\r
275 #define I2S_DataFormat_16bextended      ((uint16_t)0x0001)\r
276 #define I2S_DataFormat_24b              ((uint16_t)0x0003)\r
277 #define I2S_DataFormat_32b              ((uint16_t)0x0005)\r
278 #define IS_I2S_DATA_FORMAT(FORMAT) (((FORMAT) == I2S_DataFormat_16b) || \\r
279                                     ((FORMAT) == I2S_DataFormat_16bextended) || \\r
280                                     ((FORMAT) == I2S_DataFormat_24b) || \\r
281                                     ((FORMAT) == I2S_DataFormat_32b))\r
282 /**\r
283   * @}\r
284   */ \r
285 \r
286 /** @defgroup I2S_MCLK_Output \r
287   * @{\r
288   */\r
289 \r
290 #define I2S_MCLKOutput_Enable           ((uint16_t)0x0200)\r
291 #define I2S_MCLKOutput_Disable          ((uint16_t)0x0000)\r
292 #define IS_I2S_MCLK_OUTPUT(OUTPUT) (((OUTPUT) == I2S_MCLKOutput_Enable) || \\r
293                                     ((OUTPUT) == I2S_MCLKOutput_Disable))\r
294 /**\r
295   * @}\r
296   */\r
297 \r
298 /** @defgroup I2S_Audio_Frequency \r
299   * @{\r
300   */\r
301 \r
302 #define I2S_AudioFreq_192k               ((uint32_t)192000)\r
303 #define I2S_AudioFreq_96k                ((uint32_t)96000)\r
304 #define I2S_AudioFreq_48k                ((uint32_t)48000)\r
305 #define I2S_AudioFreq_44k                ((uint32_t)44100)\r
306 #define I2S_AudioFreq_32k                ((uint32_t)32000)\r
307 #define I2S_AudioFreq_22k                ((uint32_t)22050)\r
308 #define I2S_AudioFreq_16k                ((uint32_t)16000)\r
309 #define I2S_AudioFreq_11k                ((uint32_t)11025)\r
310 #define I2S_AudioFreq_8k                 ((uint32_t)8000)\r
311 #define I2S_AudioFreq_Default            ((uint32_t)2)\r
312 \r
313 #define IS_I2S_AUDIO_FREQ(FREQ) ((((FREQ) >= I2S_AudioFreq_8k) && \\r
314                                   ((FREQ) <= I2S_AudioFreq_192k)) || \\r
315                                  ((FREQ) == I2S_AudioFreq_Default))\r
316 /**\r
317   * @}\r
318   */ \r
319 \r
320 /** @defgroup I2S_Clock_Polarity \r
321   * @{\r
322   */\r
323 \r
324 #define I2S_CPOL_Low                    ((uint16_t)0x0000)\r
325 #define I2S_CPOL_High                   ((uint16_t)0x0008)\r
326 #define IS_I2S_CPOL(CPOL) (((CPOL) == I2S_CPOL_Low) || \\r
327                            ((CPOL) == I2S_CPOL_High))\r
328 /**\r
329   * @}\r
330   */\r
331 \r
332 /** @defgroup SPI_I2S_DMA_transfer_requests \r
333   * @{\r
334   */\r
335 \r
336 #define SPI_I2S_DMAReq_Tx               ((uint16_t)0x0002)\r
337 #define SPI_I2S_DMAReq_Rx               ((uint16_t)0x0001)\r
338 #define IS_SPI_I2S_DMAREQ(DMAREQ) ((((DMAREQ) & (uint16_t)0xFFFC) == 0x00) && ((DMAREQ) != 0x00))\r
339 /**\r
340   * @}\r
341   */\r
342 \r
343 /** @defgroup SPI_NSS_internal_software_management \r
344   * @{\r
345   */\r
346 \r
347 #define SPI_NSSInternalSoft_Set         ((uint16_t)0x0100)\r
348 #define SPI_NSSInternalSoft_Reset       ((uint16_t)0xFEFF)\r
349 #define IS_SPI_NSS_INTERNAL(INTERNAL) (((INTERNAL) == SPI_NSSInternalSoft_Set) || \\r
350                                        ((INTERNAL) == SPI_NSSInternalSoft_Reset))\r
351 /**\r
352   * @}\r
353   */\r
354 \r
355 /** @defgroup SPI_CRC_Transmit_Receive \r
356   * @{\r
357   */\r
358 \r
359 #define SPI_CRC_Tx                      ((uint8_t)0x00)\r
360 #define SPI_CRC_Rx                      ((uint8_t)0x01)\r
361 #define IS_SPI_CRC(CRC) (((CRC) == SPI_CRC_Tx) || ((CRC) == SPI_CRC_Rx))\r
362 /**\r
363   * @}\r
364   */\r
365 \r
366 /** @defgroup SPI_direction_transmit_receive \r
367   * @{\r
368   */\r
369 \r
370 #define SPI_Direction_Rx                ((uint16_t)0xBFFF)\r
371 #define SPI_Direction_Tx                ((uint16_t)0x4000)\r
372 #define IS_SPI_DIRECTION(DIRECTION) (((DIRECTION) == SPI_Direction_Rx) || \\r
373                                      ((DIRECTION) == SPI_Direction_Tx))\r
374 /**\r
375   * @}\r
376   */\r
377 \r
378 /** @defgroup SPI_I2S_interrupts_definition \r
379   * @{\r
380   */\r
381 \r
382 #define SPI_I2S_IT_TXE                  ((uint8_t)0x71)\r
383 #define SPI_I2S_IT_RXNE                 ((uint8_t)0x60)\r
384 #define SPI_I2S_IT_ERR                  ((uint8_t)0x50)\r
385 #define IS_SPI_I2S_CONFIG_IT(IT) (((IT) == SPI_I2S_IT_TXE) || \\r
386                                  ((IT) == SPI_I2S_IT_RXNE) || \\r
387                                  ((IT) == SPI_I2S_IT_ERR))\r
388 #define SPI_I2S_IT_OVR                  ((uint8_t)0x56)\r
389 #define SPI_IT_MODF                     ((uint8_t)0x55)\r
390 #define SPI_IT_CRCERR                   ((uint8_t)0x54)\r
391 #define I2S_IT_UDR                      ((uint8_t)0x53)\r
392 #define IS_SPI_I2S_CLEAR_IT(IT) (((IT) == SPI_IT_CRCERR))\r
393 #define IS_SPI_I2S_GET_IT(IT) (((IT) == SPI_I2S_IT_RXNE) || ((IT) == SPI_I2S_IT_TXE) || \\r
394                                ((IT) == I2S_IT_UDR) || ((IT) == SPI_IT_CRCERR) || \\r
395                                ((IT) == SPI_IT_MODF) || ((IT) == SPI_I2S_IT_OVR))\r
396 /**\r
397   * @}\r
398   */\r
399 \r
400 /** @defgroup SPI_I2S_flags_definition \r
401   * @{\r
402   */\r
403 \r
404 #define SPI_I2S_FLAG_RXNE               ((uint16_t)0x0001)\r
405 #define SPI_I2S_FLAG_TXE                ((uint16_t)0x0002)\r
406 #define I2S_FLAG_CHSIDE                 ((uint16_t)0x0004)\r
407 #define I2S_FLAG_UDR                    ((uint16_t)0x0008)\r
408 #define SPI_FLAG_CRCERR                 ((uint16_t)0x0010)\r
409 #define SPI_FLAG_MODF                   ((uint16_t)0x0020)\r
410 #define SPI_I2S_FLAG_OVR                ((uint16_t)0x0040)\r
411 #define SPI_I2S_FLAG_BSY                ((uint16_t)0x0080)\r
412 #define IS_SPI_I2S_CLEAR_FLAG(FLAG) (((FLAG) == SPI_FLAG_CRCERR))\r
413 #define IS_SPI_I2S_GET_FLAG(FLAG) (((FLAG) == SPI_I2S_FLAG_BSY) || ((FLAG) == SPI_I2S_FLAG_OVR) || \\r
414                                    ((FLAG) == SPI_FLAG_MODF) || ((FLAG) == SPI_FLAG_CRCERR) || \\r
415                                    ((FLAG) == I2S_FLAG_UDR) || ((FLAG) == I2S_FLAG_CHSIDE) || \\r
416                                    ((FLAG) == SPI_I2S_FLAG_TXE) || ((FLAG) == SPI_I2S_FLAG_RXNE))\r
417 /**\r
418   * @}\r
419   */\r
420 \r
421 /** @defgroup SPI_CRC_polynomial \r
422   * @{\r
423   */\r
424 \r
425 #define IS_SPI_CRC_POLYNOMIAL(POLYNOMIAL) ((POLYNOMIAL) >= 0x1)\r
426 /**\r
427   * @}\r
428   */\r
429 \r
430 /**\r
431   * @}\r
432   */\r
433 \r
434 /** @defgroup SPI_Exported_Macros\r
435   * @{\r
436   */\r
437 \r
438 /**\r
439   * @}\r
440   */\r
441 \r
442 /** @defgroup SPI_Exported_Functions\r
443   * @{\r
444   */\r
445 \r
446 void SPI_I2S_DeInit(SPI_TypeDef* SPIx);\r
447 void SPI_Init(SPI_TypeDef* SPIx, SPI_InitTypeDef* SPI_InitStruct);\r
448 void I2S_Init(SPI_TypeDef* SPIx, I2S_InitTypeDef* I2S_InitStruct);\r
449 void SPI_StructInit(SPI_InitTypeDef* SPI_InitStruct);\r
450 void I2S_StructInit(I2S_InitTypeDef* I2S_InitStruct);\r
451 void SPI_Cmd(SPI_TypeDef* SPIx, FunctionalState NewState);\r
452 void I2S_Cmd(SPI_TypeDef* SPIx, FunctionalState NewState);\r
453 void SPI_I2S_ITConfig(SPI_TypeDef* SPIx, uint8_t SPI_I2S_IT, FunctionalState NewState);\r
454 void SPI_I2S_DMACmd(SPI_TypeDef* SPIx, uint16_t SPI_I2S_DMAReq, FunctionalState NewState);\r
455 void SPI_I2S_SendData(SPI_TypeDef* SPIx, uint16_t Data);\r
456 uint16_t SPI_I2S_ReceiveData(SPI_TypeDef* SPIx);\r
457 void SPI_NSSInternalSoftwareConfig(SPI_TypeDef* SPIx, uint16_t SPI_NSSInternalSoft);\r
458 void SPI_SSOutputCmd(SPI_TypeDef* SPIx, FunctionalState NewState);\r
459 void SPI_DataSizeConfig(SPI_TypeDef* SPIx, uint16_t SPI_DataSize);\r
460 void SPI_TransmitCRC(SPI_TypeDef* SPIx);\r
461 void SPI_CalculateCRC(SPI_TypeDef* SPIx, FunctionalState NewState);\r
462 uint16_t SPI_GetCRC(SPI_TypeDef* SPIx, uint8_t SPI_CRC);\r
463 uint16_t SPI_GetCRCPolynomial(SPI_TypeDef* SPIx);\r
464 void SPI_BiDirectionalLineConfig(SPI_TypeDef* SPIx, uint16_t SPI_Direction);\r
465 FlagStatus SPI_I2S_GetFlagStatus(SPI_TypeDef* SPIx, uint16_t SPI_I2S_FLAG);\r
466 void SPI_I2S_ClearFlag(SPI_TypeDef* SPIx, uint16_t SPI_I2S_FLAG);\r
467 ITStatus SPI_I2S_GetITStatus(SPI_TypeDef* SPIx, uint8_t SPI_I2S_IT);\r
468 void SPI_I2S_ClearITPendingBit(SPI_TypeDef* SPIx, uint8_t SPI_I2S_IT);\r
469 \r
470 #ifdef __cplusplus\r
471 }\r
472 #endif\r
473 \r
474 #endif /*__STM32F10x_SPI_H */\r
475 /**\r
476   * @}\r
477   */\r
478 \r
479 /**\r
480   * @}\r
481   */\r
482 \r
483 /**\r
484   * @}\r
485   */\r
486 \r
487 /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/\r