inport from local

Dependents:   Hobbyking_Cheetah_0511

Committer:
NYX
Date:
Mon Mar 16 06:35:48 2020 +0000
Revision:
0:85b3fd62ea1a
reinport to mbed;

Who changed what in which revision?

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