mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Wed Jul 01 09:45:11 2015 +0100
Revision:
579:53297373a894
Parent:
573:ad23fe03a082
Child:
610:813dcc80987e
Synchronized with git revision d5b4d2ab9c47edb4dc5776e7177b0c2263459081

Full URL: https://github.com/mbedmicro/mbed/commit/d5b4d2ab9c47edb4dc5776e7177b0c2263459081/

Initial version of drivers for SAMR21

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 573:ad23fe03a082 5 * @version V1.0.0
mbed_official 573:ad23fe03a082 6 * @date 12-May-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****/