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:
Thu Jul 02 16:30:08 2015 +0100
Revision:
581:39197bcd20f2
Parent:
532:fe11edbda85c
Child:
613:bc40b8d2aec4
Synchronized with git revision ae2d3cdffe70184eb8736d94f76c45c93f4b7724

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

Make it possible to build the core mbed library with yotta

Who changed what in which revision?

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