mbed library sources

Dependents:   Marvino mbot

Fork of mbed-src by mbed official

Committer:
jaerts
Date:
Tue Dec 22 13:22:16 2015 +0000
Revision:
637:ed69428d4850
Parent:
610:813dcc80987e
Add very shady LPC1768 CAN Filter implementation

Who changed what in which revision?

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