1 /** 2 ****************************************************************************** 3 * @file stm32f7xx_hal_dcmi_ex.h 4 * @author MCD Application Team 5 * @version V1.0.1 6 * @date 25-June-2015 7 * @brief Header file of DCMI Extension HAL module. 8 ****************************************************************************** 9 * @attention 10 * 11 * <h2><center>© COPYRIGHT(c) 2015 STMicroelectronics</center></h2> 12 * 13 * Redistribution and use in source and binary forms, with or without modification, 14 * are permitted provided that the following conditions are met: 15 * 1. Redistributions of source code must retain the above copyright notice, 16 * this list of conditions and the following disclaimer. 17 * 2. Redistributions in binary form must reproduce the above copyright notice, 18 * this list of conditions and the following disclaimer in the documentation 19 * and/or other materials provided with the distribution. 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors 21 * may be used to endorse or promote products derived from this software 22 * without specific prior written permission. 23 * 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 34 * 35 ****************************************************************************** 36 */ 37 38 /* Define to prevent recursive inclusion -------------------------------------*/ 39 #ifndef __STM32F7xx_HAL_DCMI_EX_H 40 #define __STM32F7xx_HAL_DCMI_EX_H 41 42 #ifdef __cplusplus 43 extern "C" { 44 #endif 45 46 47 /* Includes ------------------------------------------------------------------*/ 48 #include "stm32f7xx_hal_def.h" 49 50 51 /** @addtogroup STM32F7xx_HAL_Driver 52 * @{ 53 */ 54 55 /** @addtogroup DCMIEx DCMIEx 56 * @{ 57 */ 58 59 60 /* Exported types ------------------------------------------------------------*/ 61 /** @defgroup DCMIEx_Exported_Types DCMIEx Exported Types 62 * @{ 63 */ 64 /** 65 * @brief DCMIEx Embedded Synchronisation CODE Init structure definition 66 */ 67 typedef struct { 68 uint8_t FrameStartCode; /*!< Specifies the code of the frame start delimiter. */ 69 uint8_t LineStartCode; /*!< Specifies the code of the line start delimiter. */ 70 uint8_t LineEndCode; /*!< Specifies the code of the line end delimiter. */ 71 uint8_t FrameEndCode; /*!< Specifies the code of the frame end delimiter. */ 72 } DCMI_CodesInitTypeDef; 73 74 /** 75 * @brief DCMI Init structure definition 76 */ 77 typedef struct { 78 uint32_t SynchroMode; /*!< Specifies the Synchronization Mode: Hardware or Embedded. 79 This parameter can be a value of @ref DCMI_Synchronization_Mode */ 80 81 uint32_t PCKPolarity; /*!< Specifies the Pixel clock polarity: Falling or Rising. 82 This parameter can be a value of @ref DCMI_PIXCK_Polarity */ 83 84 uint32_t VSPolarity; /*!< Specifies the Vertical synchronization polarity: High or Low. 85 This parameter can be a value of @ref DCMI_VSYNC_Polarity */ 86 87 uint32_t HSPolarity; /*!< Specifies the Horizontal synchronization polarity: High or Low. 88 This parameter can be a value of @ref DCMI_HSYNC_Polarity */ 89 90 uint32_t CaptureRate; /*!< Specifies the frequency of frame capture: All, 1/2 or 1/4. 91 This parameter can be a value of @ref DCMI_Capture_Rate */ 92 93 uint32_t ExtendedDataMode; /*!< Specifies the data width: 8-bit, 10-bit, 12-bit or 14-bit. 94 This parameter can be a value of @ref DCMI_Extended_Data_Mode */ 95 96 DCMI_CodesInitTypeDef SyncroCode; /*!< Specifies the code of the frame start delimiter. */ 97 98 uint32_t JPEGMode; /*!< Enable or Disable the JPEG mode. 99 This parameter can be a value of @ref DCMI_MODE_JPEG */ 100 101 uint32_t ByteSelectMode; /*!< Specifies the data to be captured by the interface 102 This parameter can be a value of @ref DCMIEx_Byte_Select_Mode */ 103 104 uint32_t ByteSelectStart; /*!< Specifies if the data to be captured by the interface is even or odd 105 This parameter can be a value of @ref DCMIEx_Byte_Select_Start */ 106 107 uint32_t LineSelectMode; /*!< Specifies the line of data to be captured by the interface 108 This parameter can be a value of @ref DCMIEx_Line_Select_Mode */ 109 110 uint32_t LineSelectStart; /*!< Specifies if the line of data to be captured by the interface is even or odd 111 This parameter can be a value of @ref DCMIEx_Line_Select_Start */ 112 } DCMI_InitTypeDef; 113 114 /** 115 * @} 116 */ 117 118 /* Exported constants --------------------------------------------------------*/ 119 /** @defgroup DCMIEx_Exported_Constants DCMIEx Exported Constants 120 * @{ 121 */ 122 123 /** @defgroup DCMIEx_Byte_Select_Mode DCMIEx Byte Select Mode 124 * @{ 125 */ 126 #define DCMI_BSM_ALL ((uint32_t)0x00000000) /*!< Interface captures all received data */ 127 #define DCMI_BSM_OTHER ((uint32_t)DCMI_CR_BSM_0) /*!< Interface captures every other byte from the received data */ 128 #define DCMI_BSM_ALTERNATE_4 ((uint32_t)DCMI_CR_BSM_1) /*!< Interface captures one byte out of four */ 129 #define DCMI_BSM_ALTERNATE_2 ((uint32_t)(DCMI_CR_BSM_0 | DCMI_CR_BSM_1)) /*!< Interface captures two bytes out of four */ 130 131 /** 132 * @} 133 */ 134 135 /** @defgroup DCMIEx_Byte_Select_Start DCMIEx Byte Select Start 136 * @{ 137 */ 138 #define DCMI_OEBS_ODD ((uint32_t)0x00000000) /*!< Interface captures first data from the frame/line start, second one being dropped */ 139 #define DCMI_OEBS_EVEN ((uint32_t)DCMI_CR_OEBS) /*!< Interface captures second data from the frame/line start, first one being dropped */ 140 141 /** 142 * @} 143 */ 144 145 /** @defgroup DCMIEx_Line_Select_Mode DCMIEx Line Select Mode 146 * @{ 147 */ 148 #define DCMI_LSM_ALL ((uint32_t)0x00000000) /*!< Interface captures all received lines */ 149 #define DCMI_LSM_ALTERNATE_2 ((uint32_t)DCMI_CR_LSM) /*!< Interface captures one line out of two */ 150 151 /** 152 * @} 153 */ 154 155 /** @defgroup DCMIEx_Line_Select_Start DCMIEx Line Select Start 156 * @{ 157 */ 158 #define DCMI_OELS_ODD ((uint32_t)0x00000000) /*!< Interface captures first line from the frame start, second one being dropped */ 159 #define DCMI_OELS_EVEN ((uint32_t)DCMI_CR_OELS) /*!< Interface captures second line from the frame start, first one being dropped */ 160 161 /** 162 * @} 163 */ 164 165 /** 166 * @} 167 */ 168 169 /* Exported macro ------------------------------------------------------------*/ 170 /* Exported functions --------------------------------------------------------*/ 171 /* Private types -------------------------------------------------------------*/ 172 /* Private variables ---------------------------------------------------------*/ 173 /* Private constants ---------------------------------------------------------*/ 174 /* Private macro -------------------------------------------------------------*/ 175 /** @defgroup DCMIEx_Private_Macros DCMIEx Private Macros 176 * @{ 177 */ 178 #define IS_DCMI_BYTE_SELECT_MODE(MODE)(((MODE) == DCMI_BSM_ALL) || \ 179 ((MODE) == DCMI_BSM_OTHER) || \ 180 ((MODE) == DCMI_BSM_ALTERNATE_4) || \ 181 ((MODE) == DCMI_BSM_ALTERNATE_2)) 182 183 #define IS_DCMI_BYTE_SELECT_START(POLARITY)(((POLARITY) == DCMI_OEBS_ODD) || \ 184 ((POLARITY) == DCMI_OEBS_EVEN)) 185 186 #define IS_DCMI_LINE_SELECT_MODE(MODE)(((MODE) == DCMI_LSM_ALL) || \ 187 ((MODE) == DCMI_LSM_ALTERNATE_2)) 188 189 #define IS_DCMI_LINE_SELECT_START(POLARITY)(((POLARITY) == DCMI_OELS_ODD) || \ 190 ((POLARITY) == DCMI_OELS_EVEN)) 191 /** 192 * @} 193 */ 194 195 /* Private functions ---------------------------------------------------------*/ 196 197 /** 198 * @} 199 */ 200 201 /** 202 * @} 203 */ 204 205 #ifdef __cplusplus 206 } 207 #endif 208 209 #endif /* __STM32F7xx_HAL_DCMI_H */ 210 211 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 212