]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL_IAR_Keil/ST_Library/include/stm32f7xx_hal_dcmi.h
Final V8.2.1 release ready for tagging:
[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.0RC1\r
6   * @date    24-March-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 DCMI Error source\r
68   */\r
69 typedef enum\r
70\r
71   DCMI_ERROR_SYNC = 1,     /*!< Synchronisation error */\r
72   DCMI_OVERRUN   = 2,      /*!< DCMI Overrun */\r
73 }DCMI_ErrorTypeDef;\r
74 \r
75 /** \r
76   * @brief  HAL DCMI State structures definition\r
77   */ \r
78 typedef enum\r
79 {\r
80   HAL_DCMI_STATE_RESET             = 0x00,  /*!< DCMI not yet initialized or disabled  */\r
81   HAL_DCMI_STATE_READY             = 0x01,  /*!< DCMI initialized and ready for use    */\r
82   HAL_DCMI_STATE_BUSY              = 0x02,  /*!< DCMI internal processing is ongoing   */\r
83   HAL_DCMI_STATE_TIMEOUT           = 0x03,  /*!< DCMI timeout state                    */\r
84   HAL_DCMI_STATE_ERROR             = 0x04   /*!< DCMI error state                      */\r
85 }HAL_DCMI_StateTypeDef;\r
86 \r
87 /** \r
88   * @brief  DCMI handle Structure definition\r
89   */\r
90 typedef struct\r
91 {\r
92   DCMI_TypeDef                  *Instance;           /*!< DCMI Register base address   */\r
93 \r
94   DCMI_InitTypeDef              Init;                /*!< DCMI parameters              */\r
95 \r
96   HAL_LockTypeDef               Lock;                /*!< DCMI locking object          */\r
97 \r
98   __IO HAL_DCMI_StateTypeDef    State;               /*!< DCMI state                   */\r
99 \r
100   __IO uint32_t                 XferCount;           /*!< DMA transfer counter         */\r
101 \r
102   __IO uint32_t                 XferSize;            /*!< DMA transfer size            */\r
103 \r
104   uint32_t                      XferTransferNumber;  /*!< DMA transfer number          */\r
105 \r
106   uint32_t                      pBuffPtr;            /*!< Pointer to DMA output buffer */\r
107 \r
108   DMA_HandleTypeDef             *DMA_Handle;         /*!< Pointer to the DMA handler   */\r
109 \r
110   __IO uint32_t                 ErrorCode;           /*!< DCMI Error code              */\r
111 \r
112 }DCMI_HandleTypeDef;\r
113 /**\r
114   * @}\r
115   */\r
116 /* Exported constants --------------------------------------------------------*/\r
117 \r
118 /** @defgroup DCMI_Exported_Constants DCMI Exported Constants\r
119   * @{\r
120   */\r
121 \r
122 /** @defgroup DCMI_Error_Code DCMI Error Code\r
123   * @{\r
124   */\r
125 #define HAL_DCMI_ERROR_NONE      ((uint32_t)0x00000000)    /*!< No error              */\r
126 #define HAL_DCMI_ERROR_OVF       ((uint32_t)0x00000001)    /*!< Overflow error        */\r
127 #define HAL_DCMI_ERROR_SYNC      ((uint32_t)0x00000002)    /*!< Synchronization error */\r
128 #define HAL_DCMI_ERROR_TIMEOUT   ((uint32_t)0x00000020)    /*!< Timeout error         */\r
129 /**\r
130   * @}\r
131   */\r
132 \r
133 /** @defgroup DCMI_Capture_Mode DCMI Capture Mode\r
134   * @{\r
135   */ \r
136 #define DCMI_MODE_CONTINUOUS           ((uint32_t)0x00000000)  /*!< The received data are transferred continuously \r
137                                                                     into the destination memory through the DMA             */\r
138 #define DCMI_MODE_SNAPSHOT             ((uint32_t)DCMI_CR_CM)  /*!< Once activated, the interface waits for the start of \r
139                                                                     frame and then transfers a single frame through the DMA */\r
140 /**\r
141   * @}\r
142   */\r
143 \r
144 /** @defgroup DCMI_Synchronization_Mode DCMI Synchronization Mode\r
145   * @{\r
146   */ \r
147 #define DCMI_SYNCHRO_HARDWARE        ((uint32_t)0x00000000)   /*!< Hardware synchronization data capture (frame/line start/stop)\r
148                                                                    is synchronized with the HSYNC/VSYNC signals                  */\r
149 #define DCMI_SYNCHRO_EMBEDDED        ((uint32_t)DCMI_CR_ESS)  /*!< Embedded synchronization data capture is synchronized with \r
150                                                                    synchronization codes embedded in the data flow               */\r
151 \r
152 /**\r
153   * @}\r
154   */\r
155 \r
156 /** @defgroup DCMI_PIXCK_Polarity DCMI PIXCK Polarity\r
157   * @{\r
158   */\r
159 #define DCMI_PCKPOLARITY_FALLING    ((uint32_t)0x00000000)      /*!< Pixel clock active on Falling edge */\r
160 #define DCMI_PCKPOLARITY_RISING     ((uint32_t)DCMI_CR_PCKPOL)  /*!< Pixel clock active on Rising edge  */\r
161 \r
162 /**\r
163   * @}\r
164   */\r
165 \r
166 /** @defgroup DCMI_VSYNC_Polarity DCMI VSYNC Polarity\r
167   * @{\r
168   */\r
169 #define DCMI_VSPOLARITY_LOW     ((uint32_t)0x00000000)     /*!< Vertical synchronization active Low  */\r
170 #define DCMI_VSPOLARITY_HIGH    ((uint32_t)DCMI_CR_VSPOL)  /*!< Vertical synchronization active High */\r
171 \r
172 /**\r
173   * @}\r
174   */\r
175 \r
176 /** @defgroup DCMI_HSYNC_Polarity DCMI HSYNC Polarity\r
177   * @{\r
178   */ \r
179 #define DCMI_HSPOLARITY_LOW     ((uint32_t)0x00000000)     /*!< Horizontal synchronization active Low  */\r
180 #define DCMI_HSPOLARITY_HIGH    ((uint32_t)DCMI_CR_HSPOL)  /*!< Horizontal synchronization active High */\r
181 \r
182 /**\r
183   * @}\r
184   */\r
185 \r
186 /** @defgroup DCMI_MODE_JPEG DCMI MODE JPEG\r
187   * @{\r
188   */\r
189 #define DCMI_JPEG_DISABLE   ((uint32_t)0x00000000)    /*!< Mode JPEG Disabled  */\r
190 #define DCMI_JPEG_ENABLE    ((uint32_t)DCMI_CR_JPEG)  /*!< Mode JPEG Enabled   */\r
191 \r
192 /**\r
193   * @}\r
194   */\r
195 \r
196 /** @defgroup DCMI_Capture_Rate DCMI Capture Rate\r
197   * @{\r
198   */\r
199 #define DCMI_CR_ALL_FRAME            ((uint32_t)0x00000000)      /*!< All frames are captured        */\r
200 #define DCMI_CR_ALTERNATE_2_FRAME    ((uint32_t)DCMI_CR_FCRC_0)  /*!< Every alternate frame captured */\r
201 #define DCMI_CR_ALTERNATE_4_FRAME    ((uint32_t)DCMI_CR_FCRC_1)  /*!< One frame in 4 frames captured */\r
202 \r
203 /**\r
204   * @}\r
205   */\r
206 \r
207 /** @defgroup DCMI_Extended_Data_Mode DCMI Extended Data Mode\r
208   * @{\r
209   */\r
210 #define DCMI_EXTEND_DATA_8B     ((uint32_t)0x00000000)                       /*!< Interface captures 8-bit data on every pixel clock  */\r
211 #define DCMI_EXTEND_DATA_10B    ((uint32_t)DCMI_CR_EDM_0)                    /*!< Interface captures 10-bit data on every pixel clock */\r
212 #define DCMI_EXTEND_DATA_12B    ((uint32_t)DCMI_CR_EDM_1)                    /*!< Interface captures 12-bit data on every pixel clock */\r
213 #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
214 \r
215 /**\r
216   * @}\r
217   */\r
218 \r
219 /** @defgroup DCMI_Window_Coordinate DCMI Window Coordinate \r
220   * @{\r
221   */\r
222 #define DCMI_WINDOW_COORDINATE    ((uint32_t)0x3FFF)  /*!< Window coordinate */\r
223 \r
224 /**\r
225   * @}\r
226   */\r
227 \r
228 /** @defgroup DCMI_Window_Height DCMI Window Height\r
229   * @{\r
230   */ \r
231 #define DCMI_WINDOW_HEIGHT    ((uint32_t)0x1FFF)  /*!< Window Height */\r
232 \r
233 /**\r
234   * @}\r
235   */\r
236 \r
237 /** @defgroup DCMI_interrupt_sources  DCMI interrupt sources\r
238   * @{\r
239   */\r
240 #define DCMI_IT_FRAME    ((uint32_t)DCMI_IER_FRAME_IE)\r
241 #define DCMI_IT_OVF      ((uint32_t)DCMI_IER_OVF_IE)\r
242 #define DCMI_IT_ERR      ((uint32_t)DCMI_IER_ERR_IE)\r
243 #define DCMI_IT_VSYNC    ((uint32_t)DCMI_IER_VSYNC_IE)\r
244 #define DCMI_IT_LINE     ((uint32_t)DCMI_IER_LINE_IE)\r
245 /**\r
246   * @}\r
247   */\r
248 \r
249 /** @defgroup DCMI_Flags DCMI Flags\r
250   * @{\r
251   */\r
252 \r
253 /** \r
254   * @brief   DCMI SR register\r
255   */ \r
256 #define DCMI_FLAG_HSYNC     ((uint32_t)0x2001)\r
257 #define DCMI_FLAG_VSYNC     ((uint32_t)0x2002)\r
258 #define DCMI_FLAG_FNE       ((uint32_t)0x2004)\r
259 /** \r
260   * @brief   DCMI RISR register  \r
261   */ \r
262 #define DCMI_FLAG_FRAMERI    ((uint32_t)DCMI_RISR_FRAME_RIS)\r
263 #define DCMI_FLAG_OVFRI      ((uint32_t)DCMI_RISR_OVF_RIS)\r
264 #define DCMI_FLAG_ERRRI      ((uint32_t)DCMI_RISR_ERR_RIS)\r
265 #define DCMI_FLAG_VSYNCRI    ((uint32_t)DCMI_RISR_VSYNC_RIS)\r
266 #define DCMI_FLAG_LINERI     ((uint32_t)DCMI_RISR_LINE_RIS)\r
267 /** \r
268   * @brief   DCMI MISR register  \r
269   */ \r
270 #define DCMI_FLAG_FRAMEMI    ((uint32_t)0x1001)\r
271 #define DCMI_FLAG_OVFMI      ((uint32_t)0x1002)\r
272 #define DCMI_FLAG_ERRMI      ((uint32_t)0x1004)\r
273 #define DCMI_FLAG_VSYNCMI    ((uint32_t)0x1008)\r
274 #define DCMI_FLAG_LINEMI     ((uint32_t)0x1010)\r
275 /**\r
276   * @}\r
277   */ \r
278 \r
279 /**\r
280   * @}\r
281   */\r
282  \r
283 /* Exported macro ------------------------------------------------------------*/\r
284 /** @defgroup DCMI_Exported_Macros DCMI Exported Macros\r
285   * @{\r
286   */\r
287   \r
288 /** @brief Reset DCMI handle state\r
289   * @param  __HANDLE__: specifies the DCMI handle.\r
290   * @retval None\r
291   */\r
292 #define __HAL_DCMI_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_DCMI_STATE_RESET)\r
293 \r
294 /**\r
295   * @brief  Enable the DCMI.\r
296   * @param  __HANDLE__: DCMI handle\r
297   * @retval None\r
298   */\r
299 #define __HAL_DCMI_ENABLE(__HANDLE__)    ((__HANDLE__)->Instance->CR |= DCMI_CR_ENABLE)\r
300 \r
301 /**\r
302   * @brief  Disable the DCMI.\r
303   * @param  __HANDLE__: DCMI handle\r
304   * @retval None\r
305   */\r
306 #define __HAL_DCMI_DISABLE(__HANDLE__)   ((__HANDLE__)->Instance->CR &= ~(DCMI_CR_ENABLE))\r
307 \r
308 /* Interrupt & Flag management */\r
309 /**\r
310   * @brief  Get the DCMI pending flags.\r
311   * @param  __HANDLE__: DCMI handle\r
312   * @param  __FLAG__: Get the specified flag.\r
313   *         This parameter can be any combination of the following values:\r
314   *            @arg DCMI_FLAG_FRAMERI: Frame capture complete flag mask\r
315   *            @arg DCMI_FLAG_OVFRI: Overflow flag mask\r
316   *            @arg DCMI_FLAG_ERRRI: Synchronization error flag mask\r
317   *            @arg DCMI_FLAG_VSYNCRI: VSYNC flag mask\r
318   *            @arg DCMI_FLAG_LINERI: Line flag mask\r
319   * @retval The state of FLAG.\r
320   */\r
321 #define __HAL_DCMI_GET_FLAG(__HANDLE__, __FLAG__)\\r
322 ((((__FLAG__) & 0x3000) == 0x0)? ((__HANDLE__)->Instance->RISR & (__FLAG__)) :\\r
323  (((__FLAG__) & 0x2000) == 0x0)? ((__HANDLE__)->Instance->MISR & (__FLAG__)) : ((__HANDLE__)->Instance->SR & (__FLAG__)))\r
324 \r
325 /**\r
326   * @brief  Clear the DCMI pending flags.\r
327   * @param  __HANDLE__: DCMI handle\r
328   * @param  __FLAG__: specifies the flag to clear.\r
329   *         This parameter can be any combination of the following values:\r
330   *            @arg DCMI_FLAG_FRAMERI: Frame capture complete flag mask\r
331   *            @arg DCMI_FLAG_OVFRI: Overflow flag mask\r
332   *            @arg DCMI_FLAG_ERRRI: Synchronization error flag mask\r
333   *            @arg DCMI_FLAG_VSYNCRI: VSYNC flag mask\r
334   *            @arg DCMI_FLAG_LINERI: Line flag mask\r
335   * @retval None\r
336   */\r
337 #define __HAL_DCMI_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ICR = (__FLAG__))\r
338 \r
339 /**\r
340   * @brief  Enable the specified DCMI interrupts.\r
341   * @param  __HANDLE__:    DCMI handle\r
342   * @param  __INTERRUPT__: specifies the DCMI interrupt sources to be enabled. \r
343   *         This parameter can be any combination of the following values:\r
344   *            @arg DCMI_IT_FRAME: Frame capture complete interrupt mask\r
345   *            @arg DCMI_IT_OVF: Overflow interrupt mask\r
346   *            @arg DCMI_IT_ERR: Synchronization error interrupt mask\r
347   *            @arg DCMI_IT_VSYNC: VSYNC interrupt mask\r
348   *            @arg DCMI_IT_LINE: Line interrupt mask\r
349   * @retval None\r
350   */\r
351 #define __HAL_DCMI_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IER |= (__INTERRUPT__))\r
352 \r
353 /**\r
354   * @brief  Disable the specified DCMI interrupts.\r
355   * @param  __HANDLE__: DCMI handle\r
356   * @param  __INTERRUPT__: specifies the DCMI interrupt sources to be enabled. \r
357   *         This parameter can be any combination of the following values:\r
358   *            @arg DCMI_IT_FRAME: Frame capture complete interrupt mask\r
359   *            @arg DCMI_IT_OVF: Overflow interrupt mask\r
360   *            @arg DCMI_IT_ERR: Synchronization error interrupt mask\r
361   *            @arg DCMI_IT_VSYNC: VSYNC interrupt mask\r
362   *            @arg DCMI_IT_LINE: Line interrupt mask\r
363   * @retval None\r
364   */\r
365 #define __HAL_DCMI_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IER &= ~(__INTERRUPT__))\r
366 \r
367 /**\r
368   * @brief  Check whether the specified DCMI interrupt has occurred or not.\r
369   * @param  __HANDLE__: DCMI handle\r
370   * @param  __INTERRUPT__: specifies the DCMI interrupt source to check.\r
371   *         This parameter can be one of the following values:\r
372   *            @arg DCMI_IT_FRAME: Frame capture complete interrupt mask\r
373   *            @arg DCMI_IT_OVF: Overflow interrupt mask\r
374   *            @arg DCMI_IT_ERR: Synchronization error interrupt mask\r
375   *            @arg DCMI_IT_VSYNC: VSYNC interrupt mask\r
376   *            @arg DCMI_IT_LINE: Line interrupt mask\r
377   * @retval The state of INTERRUPT.\r
378   */\r
379 #define __HAL_DCMI_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->MISR & (__INTERRUPT__))\r
380 \r
381 /**\r
382   * @}\r
383   */\r
384   \r
385 /* Exported functions --------------------------------------------------------*/\r
386 /** @addtogroup DCMI_Exported_Functions DCMI Exported Functions\r
387   * @{\r
388   */\r
389 \r
390 /** @addtogroup DCMI_Exported_Functions_Group1 Initialization and de-initialization functions\r
391  * @{\r
392  */\r
393 /* Initialization and de-initialization functions *****************************/\r
394 HAL_StatusTypeDef HAL_DCMI_Init(DCMI_HandleTypeDef *hdcmi);\r
395 HAL_StatusTypeDef HAL_DCMI_DeInit(DCMI_HandleTypeDef *hdcmi);\r
396 void       HAL_DCMI_MspInit(DCMI_HandleTypeDef* hdcmi);\r
397 void       HAL_DCMI_MspDeInit(DCMI_HandleTypeDef* hdcmi);\r
398 /**\r
399   * @}\r
400   */\r
401   \r
402 /** @addtogroup DCMI_Exported_Functions_Group2 Operations functions\r
403  * @{\r
404  */\r
405 /* IO operation functions *****************************************************/\r
406 HAL_StatusTypeDef HAL_DCMI_Start_DMA(DCMI_HandleTypeDef* hdcmi, uint32_t DCMI_Mode, uint32_t pData, uint32_t Length);\r
407 HAL_StatusTypeDef HAL_DCMI_Stop(DCMI_HandleTypeDef* hdcmi);\r
408 void       HAL_DCMI_ErrorCallback(DCMI_HandleTypeDef *hdcmi);\r
409 void       HAL_DCMI_LineEventCallback(DCMI_HandleTypeDef *hdcmi);\r
410 void       HAL_DCMI_FrameEventCallback(DCMI_HandleTypeDef *hdcmi);\r
411 void       HAL_DCMI_VsyncEventCallback(DCMI_HandleTypeDef *hdcmi);\r
412 void       HAL_DCMI_IRQHandler(DCMI_HandleTypeDef *hdcmi);\r
413 /**\r
414   * @}\r
415   */\r
416   \r
417 /** @addtogroup DCMI_Exported_Functions_Group3 Peripheral Control functions\r
418  * @{\r
419  */\r
420 /* Peripheral Control functions ***********************************************/\r
421 HAL_StatusTypeDef     HAL_DCMI_ConfigCROP(DCMI_HandleTypeDef *hdcmi, uint32_t X0, uint32_t Y0, uint32_t XSize, uint32_t YSize);\r
422 HAL_StatusTypeDef     HAL_DCMI_EnableCROP(DCMI_HandleTypeDef *hdcmi);\r
423 HAL_StatusTypeDef     HAL_DCMI_DisableCROP(DCMI_HandleTypeDef *hdcmi);\r
424 /**\r
425   * @}\r
426   */\r
427   \r
428 /** @addtogroup DCMI_Exported_Functions_Group4 Peripheral State functions\r
429  * @{\r
430  */\r
431 /* Peripheral State functions *************************************************/\r
432 HAL_DCMI_StateTypeDef HAL_DCMI_GetState(DCMI_HandleTypeDef *hdcmi);\r
433 uint32_t              HAL_DCMI_GetError(DCMI_HandleTypeDef *hdcmi);\r
434 /**\r
435   * @}\r
436   */\r
437 \r
438 /**\r
439   * @}\r
440   */\r
441 \r
442 /* Private types -------------------------------------------------------------*/\r
443 /* Private variables ---------------------------------------------------------*/\r
444 /* Private constants ---------------------------------------------------------*/   \r
445 /* Private macro -------------------------------------------------------------*/\r
446 /** @defgroup DCMI_Private_Macros DCMI Private Macros\r
447   * @{\r
448   */\r
449 #define IS_DCMI_CAPTURE_MODE(MODE)(((MODE) == DCMI_MODE_CONTINUOUS) || \\r
450                                    ((MODE) == DCMI_MODE_SNAPSHOT))\r
451                                                                                                                                                          \r
452 #define IS_DCMI_SYNCHRO(MODE)(((MODE) == DCMI_SYNCHRO_HARDWARE) || \\r
453                               ((MODE) == DCMI_SYNCHRO_EMBEDDED))\r
454                                                                                                                                         \r
455 #define IS_DCMI_PCKPOLARITY(POLARITY)(((POLARITY) == DCMI_PCKPOLARITY_FALLING) || \\r
456                                       ((POLARITY) == DCMI_PCKPOLARITY_RISING))\r
457                                                                                                                                                                         \r
458 #define IS_DCMI_VSPOLARITY(POLARITY)(((POLARITY) == DCMI_VSPOLARITY_LOW) || \\r
459                                      ((POLARITY) == DCMI_VSPOLARITY_HIGH))\r
460                                                                                                                                                                  \r
461 #define IS_DCMI_HSPOLARITY(POLARITY)(((POLARITY) == DCMI_HSPOLARITY_LOW) || \\r
462                                      ((POLARITY) == DCMI_HSPOLARITY_HIGH))\r
463                                                                                                                                                                  \r
464 #define IS_DCMI_MODE_JPEG(JPEG_MODE)(((JPEG_MODE) == DCMI_JPEG_DISABLE) || \\r
465                                      ((JPEG_MODE) == DCMI_JPEG_ENABLE))\r
466                                                                                                                                                                  \r
467 #define IS_DCMI_CAPTURE_RATE(RATE) (((RATE) == DCMI_CR_ALL_FRAME)         || \\r
468                                     ((RATE) == DCMI_CR_ALTERNATE_2_FRAME) || \\r
469                                     ((RATE) == DCMI_CR_ALTERNATE_4_FRAME))\r
470                                                                                                                                                                 \r
471 #define IS_DCMI_EXTENDED_DATA(DATA)(((DATA) == DCMI_EXTEND_DATA_8B)  || \\r
472                                     ((DATA) == DCMI_EXTEND_DATA_10B) || \\r
473                                     ((DATA) == DCMI_EXTEND_DATA_12B) || \\r
474                                     ((DATA) == DCMI_EXTEND_DATA_14B))\r
475                                                                                                                                                                 \r
476 #define IS_DCMI_WINDOW_COORDINATE(COORDINATE) ((COORDINATE) <= DCMI_WINDOW_COORDINATE)\r
477 \r
478 #define IS_DCMI_WINDOW_HEIGHT(HEIGHT) ((HEIGHT) <= DCMI_WINDOW_HEIGHT)\r
479 \r
480 /**\r
481   * @}\r
482   */\r
483 \r
484 /* Private functions ---------------------------------------------------------*/\r
485 /** @addtogroup DCMI_Private_Functions DCMI Private Functions\r
486   * @{\r
487   */\r
488   \r
489 /**\r
490   * @}\r
491   */\r
492       \r
493 /**\r
494   * @}\r
495   */\r
496 /**\r
497   * @}\r
498   */ \r
499 \r
500 #ifdef __cplusplus\r
501 }\r
502 #endif\r
503 \r
504 #endif /* __STM32F7xx_HAL_DCMI_H */\r
505 \r
506 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/\r