]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/ST_Library/include/stm32f7xx_hal_dcmi.h
Update library files used in STM32F7 demo to the latest version released by ST.
[freertos] / FreeRTOS / Demo / CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil / ST_Library / include / stm32f7xx_hal_dcmi.h
1 /**\r
2   ******************************************************************************\r
3   * @file    stm32f7xx_hal_dcmi.h\r
4   * @author  MCD Application Team\r
5   * @version V1.0.0\r
6   * @date    12-May-2015\r
7   * @brief   Header file of DCMI HAL module.\r
8   ******************************************************************************\r
9   * @attention\r
10   *\r
11   * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>\r
12   *\r
13   * Redistribution and use in source and binary forms, with or without modification,\r
14   * are permitted provided that the following conditions are met:\r
15   *   1. Redistributions of source code must retain the above copyright notice,\r
16   *      this list of conditions and the following disclaimer.\r
17   *   2. Redistributions in binary form must reproduce the above copyright notice,\r
18   *      this list of conditions and the following disclaimer in the documentation\r
19   *      and/or other materials provided with the distribution.\r
20   *   3. Neither the name of STMicroelectronics nor the names of its contributors\r
21   *      may be used to endorse or promote products derived from this software\r
22   *      without specific prior written permission.\r
23   *\r
24   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\r
25   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
26   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r
27   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\r
28   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
29   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\r
30   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\r
31   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\r
32   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\r
33   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
34   *\r
35   ******************************************************************************\r
36   */ \r
37 \r
38 /* Define to prevent recursive inclusion -------------------------------------*/\r
39 #ifndef __STM32F7xx_HAL_DCMI_H\r
40 #define __STM32F7xx_HAL_DCMI_H\r
41 \r
42 #ifdef __cplusplus\r
43  extern "C" {\r
44 #endif\r
45 \r
46 /* Includes ------------------------------------------------------------------*/\r
47 #include "stm32f7xx_hal_def.h"\r
48 \r
49 /* Include DCMI HAL Extended module */\r
50 /* (include on top of file since DCMI structures are defined in extended file) */\r
51 #include "stm32f7xx_hal_dcmi_ex.h"\r
52          \r
53 /** @addtogroup STM32F7xx_HAL_Driver\r
54   * @{\r
55   */\r
56 \r
57 /** @addtogroup DCMI DCMI\r
58   * @brief DCMI HAL module driver\r
59   * @{\r
60   */  \r
61 \r
62 /* Exported types ------------------------------------------------------------*/\r
63 /** @defgroup DCMI_Exported_Types DCMI Exported Types\r
64   * @{\r
65   */\r
66 /** \r
67   * @brief  HAL DCMI State structures definition\r
68   */ \r
69 typedef enum\r
70 {\r
71   HAL_DCMI_STATE_RESET             = 0x00,  /*!< DCMI not yet initialized or disabled  */\r
72   HAL_DCMI_STATE_READY             = 0x01,  /*!< DCMI initialized and ready for use    */\r
73   HAL_DCMI_STATE_BUSY              = 0x02,  /*!< DCMI internal processing is ongoing   */\r
74   HAL_DCMI_STATE_TIMEOUT           = 0x03,  /*!< DCMI timeout state                    */\r
75   HAL_DCMI_STATE_ERROR             = 0x04   /*!< DCMI error state                      */\r
76 }HAL_DCMI_StateTypeDef;\r
77 \r
78 /** \r
79   * @brief  DCMI handle Structure definition\r
80   */\r
81 typedef struct\r
82 {\r
83   DCMI_TypeDef                  *Instance;           /*!< DCMI Register base address   */\r
84 \r
85   DCMI_InitTypeDef              Init;                /*!< DCMI parameters              */\r
86 \r
87   HAL_LockTypeDef               Lock;                /*!< DCMI locking object          */\r
88 \r
89   __IO HAL_DCMI_StateTypeDef    State;               /*!< DCMI state                   */\r
90 \r
91   __IO uint32_t                 XferCount;           /*!< DMA transfer counter         */\r
92 \r
93   __IO uint32_t                 XferSize;            /*!< DMA transfer size            */\r
94 \r
95   uint32_t                      XferTransferNumber;  /*!< DMA transfer number          */\r
96 \r
97   uint32_t                      pBuffPtr;            /*!< Pointer to DMA output buffer */\r
98 \r
99   DMA_HandleTypeDef             *DMA_Handle;         /*!< Pointer to the DMA handler   */\r
100 \r
101   __IO uint32_t                 ErrorCode;           /*!< DCMI Error code              */\r
102 \r
103 }DCMI_HandleTypeDef;\r
104 /**\r
105   * @}\r
106   */\r
107 /* Exported constants --------------------------------------------------------*/\r
108 \r
109 /** @defgroup DCMI_Exported_Constants DCMI Exported Constants\r
110   * @{\r
111   */\r
112 \r
113 /** @defgroup DCMI_Error_Code DCMI Error Code\r
114   * @{\r
115   */\r
116 #define HAL_DCMI_ERROR_NONE      ((uint32_t)0x00000000)    /*!< No error              */\r
117 #define HAL_DCMI_ERROR_OVF       ((uint32_t)0x00000001)    /*!< Overflow error        */\r
118 #define HAL_DCMI_ERROR_SYNC      ((uint32_t)0x00000002)    /*!< Synchronization error */\r
119 #define HAL_DCMI_ERROR_TIMEOUT   ((uint32_t)0x00000020)    /*!< Timeout error         */\r
120 /**\r
121   * @}\r
122   */\r
123 \r
124 /** @defgroup DCMI_Capture_Mode DCMI Capture Mode\r
125   * @{\r
126   */ \r
127 #define DCMI_MODE_CONTINUOUS           ((uint32_t)0x00000000)  /*!< The received data are transferred continuously \r
128                                                                     into the destination memory through the DMA             */\r
129 #define DCMI_MODE_SNAPSHOT             ((uint32_t)DCMI_CR_CM)  /*!< Once activated, the interface waits for the start of \r
130                                                                     frame and then transfers a single frame through the DMA */\r
131 /**\r
132   * @}\r
133   */\r
134 \r
135 /** @defgroup DCMI_Synchronization_Mode DCMI Synchronization Mode\r
136   * @{\r
137   */ \r
138 #define DCMI_SYNCHRO_HARDWARE        ((uint32_t)0x00000000)   /*!< Hardware synchronization data capture (frame/line start/stop)\r
139                                                                    is synchronized with the HSYNC/VSYNC signals                  */\r
140 #define DCMI_SYNCHRO_EMBEDDED        ((uint32_t)DCMI_CR_ESS)  /*!< Embedded synchronization data capture is synchronized with \r
141                                                                    synchronization codes embedded in the data flow               */\r
142 \r
143 /**\r
144   * @}\r
145   */\r
146 \r
147 /** @defgroup DCMI_PIXCK_Polarity DCMI PIXCK Polarity\r
148   * @{\r
149   */\r
150 #define DCMI_PCKPOLARITY_FALLING    ((uint32_t)0x00000000)      /*!< Pixel clock active on Falling edge */\r
151 #define DCMI_PCKPOLARITY_RISING     ((uint32_t)DCMI_CR_PCKPOL)  /*!< Pixel clock active on Rising edge  */\r
152 \r
153 /**\r
154   * @}\r
155   */\r
156 \r
157 /** @defgroup DCMI_VSYNC_Polarity DCMI VSYNC Polarity\r
158   * @{\r
159   */\r
160 #define DCMI_VSPOLARITY_LOW     ((uint32_t)0x00000000)     /*!< Vertical synchronization active Low  */\r
161 #define DCMI_VSPOLARITY_HIGH    ((uint32_t)DCMI_CR_VSPOL)  /*!< Vertical synchronization active High */\r
162 \r
163 /**\r
164   * @}\r
165   */\r
166 \r
167 /** @defgroup DCMI_HSYNC_Polarity DCMI HSYNC Polarity\r
168   * @{\r
169   */ \r
170 #define DCMI_HSPOLARITY_LOW     ((uint32_t)0x00000000)     /*!< Horizontal synchronization active Low  */\r
171 #define DCMI_HSPOLARITY_HIGH    ((uint32_t)DCMI_CR_HSPOL)  /*!< Horizontal synchronization active High */\r
172 \r
173 /**\r
174   * @}\r
175   */\r
176 \r
177 /** @defgroup DCMI_MODE_JPEG DCMI MODE JPEG\r
178   * @{\r
179   */\r
180 #define DCMI_JPEG_DISABLE   ((uint32_t)0x00000000)    /*!< Mode JPEG Disabled  */\r
181 #define DCMI_JPEG_ENABLE    ((uint32_t)DCMI_CR_JPEG)  /*!< Mode JPEG Enabled   */\r
182 \r
183 /**\r
184   * @}\r
185   */\r
186 \r
187 /** @defgroup DCMI_Capture_Rate DCMI Capture Rate\r
188   * @{\r
189   */\r
190 #define DCMI_CR_ALL_FRAME            ((uint32_t)0x00000000)      /*!< All frames are captured        */\r
191 #define DCMI_CR_ALTERNATE_2_FRAME    ((uint32_t)DCMI_CR_FCRC_0)  /*!< Every alternate frame captured */\r
192 #define DCMI_CR_ALTERNATE_4_FRAME    ((uint32_t)DCMI_CR_FCRC_1)  /*!< One frame in 4 frames captured */\r
193 \r
194 /**\r
195   * @}\r
196   */\r
197 \r
198 /** @defgroup DCMI_Extended_Data_Mode DCMI Extended Data Mode\r
199   * @{\r
200   */\r
201 #define DCMI_EXTEND_DATA_8B     ((uint32_t)0x00000000)                       /*!< Interface captures 8-bit data on every pixel clock  */\r
202 #define DCMI_EXTEND_DATA_10B    ((uint32_t)DCMI_CR_EDM_0)                    /*!< Interface captures 10-bit data on every pixel clock */\r
203 #define DCMI_EXTEND_DATA_12B    ((uint32_t)DCMI_CR_EDM_1)                    /*!< Interface captures 12-bit data on every pixel clock */\r
204 #define DCMI_EXTEND_DATA_14B    ((uint32_t)(DCMI_CR_EDM_0 | DCMI_CR_EDM_1))  /*!< Interface captures 14-bit data on every pixel clock */\r
205 \r
206 /**\r
207   * @}\r
208   */\r
209 \r
210 /** @defgroup DCMI_Window_Coordinate DCMI Window Coordinate \r
211   * @{\r
212   */\r
213 #define DCMI_WINDOW_COORDINATE    ((uint32_t)0x3FFF)  /*!< Window coordinate */\r
214 \r
215 /**\r
216   * @}\r
217   */\r
218 \r
219 /** @defgroup DCMI_Window_Height DCMI Window Height\r
220   * @{\r
221   */ \r
222 #define DCMI_WINDOW_HEIGHT    ((uint32_t)0x1FFF)  /*!< Window Height */\r
223 \r
224 /**\r
225   * @}\r
226   */\r
227 \r
228 /** @defgroup DCMI_interrupt_sources  DCMI interrupt sources\r
229   * @{\r
230   */\r
231 #define DCMI_IT_FRAME    ((uint32_t)DCMI_IER_FRAME_IE)\r
232 #define DCMI_IT_OVF      ((uint32_t)DCMI_IER_OVF_IE)\r
233 #define DCMI_IT_ERR      ((uint32_t)DCMI_IER_ERR_IE)\r
234 #define DCMI_IT_VSYNC    ((uint32_t)DCMI_IER_VSYNC_IE)\r
235 #define DCMI_IT_LINE     ((uint32_t)DCMI_IER_LINE_IE)\r
236 /**\r
237   * @}\r
238   */\r
239 \r
240 /** @defgroup DCMI_Flags DCMI Flags\r
241   * @{\r
242   */\r
243 \r
244 /** \r
245   * @brief   DCMI SR register\r
246   */ \r
247 #define DCMI_FLAG_HSYNC     ((uint32_t)0x2001)\r
248 #define DCMI_FLAG_VSYNC     ((uint32_t)0x2002)\r
249 #define DCMI_FLAG_FNE       ((uint32_t)0x2004)\r
250 /** \r
251   * @brief   DCMI RISR register  \r
252   */ \r
253 #define DCMI_FLAG_FRAMERI    ((uint32_t)DCMI_RISR_FRAME_RIS)\r
254 #define DCMI_FLAG_OVFRI      ((uint32_t)DCMI_RISR_OVF_RIS)\r
255 #define DCMI_FLAG_ERRRI      ((uint32_t)DCMI_RISR_ERR_RIS)\r
256 #define DCMI_FLAG_VSYNCRI    ((uint32_t)DCMI_RISR_VSYNC_RIS)\r
257 #define DCMI_FLAG_LINERI     ((uint32_t)DCMI_RISR_LINE_RIS)\r
258 /** \r
259   * @brief   DCMI MISR register  \r
260   */ \r
261 #define DCMI_FLAG_FRAMEMI    ((uint32_t)0x1001)\r
262 #define DCMI_FLAG_OVFMI      ((uint32_t)0x1002)\r
263 #define DCMI_FLAG_ERRMI      ((uint32_t)0x1004)\r
264 #define DCMI_FLAG_VSYNCMI    ((uint32_t)0x1008)\r
265 #define DCMI_FLAG_LINEMI     ((uint32_t)0x1010)\r
266 /**\r
267   * @}\r
268   */ \r
269 \r
270 /**\r
271   * @}\r
272   */\r
273  \r
274 /* Exported macro ------------------------------------------------------------*/\r
275 /** @defgroup DCMI_Exported_Macros DCMI Exported Macros\r
276   * @{\r
277   */\r
278   \r
279 /** @brief Reset DCMI handle state\r
280   * @param  __HANDLE__: specifies the DCMI handle.\r
281   * @retval None\r
282   */\r
283 #define __HAL_DCMI_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_DCMI_STATE_RESET)\r
284 \r
285 /**\r
286   * @brief  Enable the DCMI.\r
287   * @param  __HANDLE__: DCMI handle\r
288   * @retval None\r
289   */\r
290 #define __HAL_DCMI_ENABLE(__HANDLE__)    ((__HANDLE__)->Instance->CR |= DCMI_CR_ENABLE)\r
291 \r
292 /**\r
293   * @brief  Disable the DCMI.\r
294   * @param  __HANDLE__: DCMI handle\r
295   * @retval None\r
296   */\r
297 #define __HAL_DCMI_DISABLE(__HANDLE__)   ((__HANDLE__)->Instance->CR &= ~(DCMI_CR_ENABLE))\r
298 \r
299 /* Interrupt & Flag management */\r
300 /**\r
301   * @brief  Get the DCMI pending flags.\r
302   * @param  __HANDLE__: DCMI handle\r
303   * @param  __FLAG__: Get the specified flag.\r
304   *         This parameter can be any combination of the following values:\r
305   *            @arg DCMI_FLAG_FRAMERI: Frame capture complete flag mask\r
306   *            @arg DCMI_FLAG_OVFRI: Overflow flag mask\r
307   *            @arg DCMI_FLAG_ERRRI: Synchronization error flag mask\r
308   *            @arg DCMI_FLAG_VSYNCRI: VSYNC flag mask\r
309   *            @arg DCMI_FLAG_LINERI: Line flag mask\r
310   * @retval The state of FLAG.\r
311   */\r
312 #define __HAL_DCMI_GET_FLAG(__HANDLE__, __FLAG__)\\r
313 ((((__FLAG__) & 0x3000) == 0x0)? ((__HANDLE__)->Instance->RISR & (__FLAG__)) :\\r
314  (((__FLAG__) & 0x2000) == 0x0)? ((__HANDLE__)->Instance->MISR & (__FLAG__)) : ((__HANDLE__)->Instance->SR & (__FLAG__)))\r
315 \r
316 /**\r
317   * @brief  Clear the DCMI pending flags.\r
318   * @param  __HANDLE__: DCMI handle\r
319   * @param  __FLAG__: specifies the flag to clear.\r
320   *         This parameter can be any combination of the following values:\r
321   *            @arg DCMI_FLAG_FRAMERI: Frame capture complete flag mask\r
322   *            @arg DCMI_FLAG_OVFRI: Overflow flag mask\r
323   *            @arg DCMI_FLAG_ERRRI: Synchronization error flag mask\r
324   *            @arg DCMI_FLAG_VSYNCRI: VSYNC flag mask\r
325   *            @arg DCMI_FLAG_LINERI: Line flag mask\r
326   * @retval None\r
327   */\r
328 #define __HAL_DCMI_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ICR = (__FLAG__))\r
329 \r
330 /**\r
331   * @brief  Enable the specified DCMI interrupts.\r
332   * @param  __HANDLE__:    DCMI handle\r
333   * @param  __INTERRUPT__: specifies the DCMI interrupt sources to be enabled. \r
334   *         This parameter can be any combination of the following values:\r
335   *            @arg DCMI_IT_FRAME: Frame capture complete interrupt mask\r
336   *            @arg DCMI_IT_OVF: Overflow interrupt mask\r
337   *            @arg DCMI_IT_ERR: Synchronization error interrupt mask\r
338   *            @arg DCMI_IT_VSYNC: VSYNC interrupt mask\r
339   *            @arg DCMI_IT_LINE: Line interrupt mask\r
340   * @retval None\r
341   */\r
342 #define __HAL_DCMI_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IER |= (__INTERRUPT__))\r
343 \r
344 /**\r
345   * @brief  Disable the specified DCMI interrupts.\r
346   * @param  __HANDLE__: DCMI handle\r
347   * @param  __INTERRUPT__: specifies the DCMI interrupt sources to be enabled. \r
348   *         This parameter can be any combination of the following values:\r
349   *            @arg DCMI_IT_FRAME: Frame capture complete interrupt mask\r
350   *            @arg DCMI_IT_OVF: Overflow interrupt mask\r
351   *            @arg DCMI_IT_ERR: Synchronization error interrupt mask\r
352   *            @arg DCMI_IT_VSYNC: VSYNC interrupt mask\r
353   *            @arg DCMI_IT_LINE: Line interrupt mask\r
354   * @retval None\r
355   */\r
356 #define __HAL_DCMI_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IER &= ~(__INTERRUPT__))\r
357 \r
358 /**\r
359   * @brief  Check whether the specified DCMI interrupt has occurred or not.\r
360   * @param  __HANDLE__: DCMI handle\r
361   * @param  __INTERRUPT__: specifies the DCMI interrupt source to check.\r
362   *         This parameter can be one of the following values:\r
363   *            @arg DCMI_IT_FRAME: Frame capture complete interrupt mask\r
364   *            @arg DCMI_IT_OVF: Overflow interrupt mask\r
365   *            @arg DCMI_IT_ERR: Synchronization error interrupt mask\r
366   *            @arg DCMI_IT_VSYNC: VSYNC interrupt mask\r
367   *            @arg DCMI_IT_LINE: Line interrupt mask\r
368   * @retval The state of INTERRUPT.\r
369   */\r
370 #define __HAL_DCMI_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->MISR & (__INTERRUPT__))\r
371 \r
372 /**\r
373   * @}\r
374   */\r
375   \r
376 /* Exported functions --------------------------------------------------------*/\r
377 /** @addtogroup DCMI_Exported_Functions DCMI Exported Functions\r
378   * @{\r
379   */\r
380 \r
381 /** @addtogroup DCMI_Exported_Functions_Group1 Initialization and Configuration functions\r
382  * @{\r
383  */\r
384 /* Initialization and de-initialization functions *****************************/\r
385 HAL_StatusTypeDef HAL_DCMI_Init(DCMI_HandleTypeDef *hdcmi);\r
386 HAL_StatusTypeDef HAL_DCMI_DeInit(DCMI_HandleTypeDef *hdcmi);\r
387 void       HAL_DCMI_MspInit(DCMI_HandleTypeDef* hdcmi);\r
388 void       HAL_DCMI_MspDeInit(DCMI_HandleTypeDef* hdcmi);\r
389 /**\r
390   * @}\r
391   */\r
392   \r
393 /** @addtogroup DCMI_Exported_Functions_Group2 IO operation functions\r
394  * @{\r
395  */\r
396 /* IO operation functions *****************************************************/\r
397 HAL_StatusTypeDef HAL_DCMI_Start_DMA(DCMI_HandleTypeDef* hdcmi, uint32_t DCMI_Mode, uint32_t pData, uint32_t Length);\r
398 HAL_StatusTypeDef HAL_DCMI_Stop(DCMI_HandleTypeDef* hdcmi);\r
399 void       HAL_DCMI_ErrorCallback(DCMI_HandleTypeDef *hdcmi);\r
400 void       HAL_DCMI_LineEventCallback(DCMI_HandleTypeDef *hdcmi);\r
401 void       HAL_DCMI_FrameEventCallback(DCMI_HandleTypeDef *hdcmi);\r
402 void       HAL_DCMI_VsyncEventCallback(DCMI_HandleTypeDef *hdcmi);\r
403 void       HAL_DCMI_IRQHandler(DCMI_HandleTypeDef *hdcmi);\r
404 /**\r
405   * @}\r
406   */\r
407   \r
408 /** @addtogroup DCMI_Exported_Functions_Group3 Peripheral Control functions\r
409  * @{\r
410  */\r
411 /* Peripheral Control functions ***********************************************/\r
412 HAL_StatusTypeDef     HAL_DCMI_ConfigCROP(DCMI_HandleTypeDef *hdcmi, uint32_t X0, uint32_t Y0, uint32_t XSize, uint32_t YSize);\r
413 HAL_StatusTypeDef     HAL_DCMI_EnableCROP(DCMI_HandleTypeDef *hdcmi);\r
414 HAL_StatusTypeDef     HAL_DCMI_DisableCROP(DCMI_HandleTypeDef *hdcmi);\r
415 /**\r
416   * @}\r
417   */\r
418   \r
419 /** @addtogroup DCMI_Exported_Functions_Group4 Peripheral State functions\r
420  * @{\r
421  */\r
422 /* Peripheral State functions *************************************************/\r
423 HAL_DCMI_StateTypeDef HAL_DCMI_GetState(DCMI_HandleTypeDef *hdcmi);\r
424 uint32_t              HAL_DCMI_GetError(DCMI_HandleTypeDef *hdcmi);\r
425 /**\r
426   * @}\r
427   */\r
428 \r
429 /**\r
430   * @}\r
431   */\r
432 \r
433 /* Private types -------------------------------------------------------------*/\r
434 /* Private variables ---------------------------------------------------------*/\r
435 /* Private constants ---------------------------------------------------------*/   \r
436 /* Private macro -------------------------------------------------------------*/\r
437 /** @defgroup DCMI_Private_Macros DCMI Private Macros\r
438   * @{\r
439   */\r
440 #define IS_DCMI_CAPTURE_MODE(MODE)(((MODE) == DCMI_MODE_CONTINUOUS) || \\r
441                                    ((MODE) == DCMI_MODE_SNAPSHOT))\r
442                                                                                                                                                          \r
443 #define IS_DCMI_SYNCHRO(MODE)(((MODE) == DCMI_SYNCHRO_HARDWARE) || \\r
444                               ((MODE) == DCMI_SYNCHRO_EMBEDDED))\r
445                                                                                                                                         \r
446 #define IS_DCMI_PCKPOLARITY(POLARITY)(((POLARITY) == DCMI_PCKPOLARITY_FALLING) || \\r
447                                       ((POLARITY) == DCMI_PCKPOLARITY_RISING))\r
448                                                                                                                                                                         \r
449 #define IS_DCMI_VSPOLARITY(POLARITY)(((POLARITY) == DCMI_VSPOLARITY_LOW) || \\r
450                                      ((POLARITY) == DCMI_VSPOLARITY_HIGH))\r
451                                                                                                                                                                  \r
452 #define IS_DCMI_HSPOLARITY(POLARITY)(((POLARITY) == DCMI_HSPOLARITY_LOW) || \\r
453                                      ((POLARITY) == DCMI_HSPOLARITY_HIGH))\r
454                                                                                                                                                                  \r
455 #define IS_DCMI_MODE_JPEG(JPEG_MODE)(((JPEG_MODE) == DCMI_JPEG_DISABLE) || \\r
456                                      ((JPEG_MODE) == DCMI_JPEG_ENABLE))\r
457                                                                                                                                                                  \r
458 #define IS_DCMI_CAPTURE_RATE(RATE) (((RATE) == DCMI_CR_ALL_FRAME)         || \\r
459                                     ((RATE) == DCMI_CR_ALTERNATE_2_FRAME) || \\r
460                                     ((RATE) == DCMI_CR_ALTERNATE_4_FRAME))\r
461                                                                                                                                                                 \r
462 #define IS_DCMI_EXTENDED_DATA(DATA)(((DATA) == DCMI_EXTEND_DATA_8B)  || \\r
463                                     ((DATA) == DCMI_EXTEND_DATA_10B) || \\r
464                                     ((DATA) == DCMI_EXTEND_DATA_12B) || \\r
465                                     ((DATA) == DCMI_EXTEND_DATA_14B))\r
466                                                                                                                                                                 \r
467 #define IS_DCMI_WINDOW_COORDINATE(COORDINATE) ((COORDINATE) <= DCMI_WINDOW_COORDINATE)\r
468 \r
469 #define IS_DCMI_WINDOW_HEIGHT(HEIGHT) ((HEIGHT) <= DCMI_WINDOW_HEIGHT)\r
470 \r
471 /**\r
472   * @}\r
473   */\r
474 \r
475 /* Private functions ---------------------------------------------------------*/\r
476 /** @addtogroup DCMI_Private_Functions DCMI Private Functions\r
477   * @{\r
478   */\r
479   \r
480 /**\r
481   * @}\r
482   */\r
483       \r
484 /**\r
485   * @}\r
486   */\r
487 /**\r
488   * @}\r
489   */ \r
490 \r
491 #ifdef __cplusplus\r
492 }\r
493 #endif\r
494 \r
495 #endif /* __STM32F7xx_HAL_DCMI_H */\r
496 \r
497 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/\r