1 /** 2 ****************************************************************************** 3 * @file stm32f4xx_hal_dcmi_ex.h 4 * @author MCD Application Team 5 * @brief Header file of DCMI Extension HAL module. 6 ****************************************************************************** 7 * @attention 8 * 9 * <h2><center>© Copyright (c) 2017 STMicroelectronics. 10 * All rights reserved.</center></h2> 11 * 12 * This software component is licensed by ST under BSD 3-Clause license, 13 * the "License"; You may not use this file except in compliance with the 14 * License. You may obtain a copy of the License at: 15 * opensource.org/licenses/BSD-3-Clause 16 * 17 ****************************************************************************** 18 */ 19 20 /* Define to prevent recursive inclusion -------------------------------------*/ 21 #ifndef __STM32F4xx_HAL_DCMI_EX_H 22 #define __STM32F4xx_HAL_DCMI_EX_H 23 24 #ifdef __cplusplus 25 extern "C" { 26 #endif 27 28 #if defined(STM32F407xx) || defined(STM32F417xx) || defined(STM32F427xx) || defined(STM32F437xx) ||\ 29 defined(STM32F429xx) || defined(STM32F439xx) || defined(STM32F446xx) || defined(STM32F469xx) ||\ 30 defined(STM32F479xx) 31 32 /* Includes ------------------------------------------------------------------*/ 33 #include "stm32f4xx_hal_def.h" 34 35 36 /** @addtogroup STM32F4xx_HAL_Driver 37 * @{ 38 */ 39 40 /** @addtogroup DCMIEx 41 * @brief DCMI HAL module driver 42 * @{ 43 */ 44 45 /* Exported types ------------------------------------------------------------*/ 46 /** @defgroup DCMIEx_Exported_Types DCMI Extended Exported Types 47 * @{ 48 */ 49 /** 50 * @brief DCMIEx Embedded Synchronisation CODE Init structure definition 51 */ 52 typedef struct 53 { 54 uint8_t FrameStartCode; /*!< Specifies the code of the frame start delimiter. */ 55 uint8_t LineStartCode; /*!< Specifies the code of the line start delimiter. */ 56 uint8_t LineEndCode; /*!< Specifies the code of the line end delimiter. */ 57 uint8_t FrameEndCode; /*!< Specifies the code of the frame end delimiter. */ 58 }DCMI_CodesInitTypeDef; 59 60 /** 61 * @brief DCMI Init structure definition 62 */ 63 typedef struct 64 { 65 uint32_t SynchroMode; /*!< Specifies the Synchronization Mode: Hardware or Embedded. 66 This parameter can be a value of @ref DCMI_Synchronization_Mode */ 67 68 uint32_t PCKPolarity; /*!< Specifies the Pixel clock polarity: Falling or Rising. 69 This parameter can be a value of @ref DCMI_PIXCK_Polarity */ 70 71 uint32_t VSPolarity; /*!< Specifies the Vertical synchronization polarity: High or Low. 72 This parameter can be a value of @ref DCMI_VSYNC_Polarity */ 73 74 uint32_t HSPolarity; /*!< Specifies the Horizontal synchronization polarity: High or Low. 75 This parameter can be a value of @ref DCMI_HSYNC_Polarity */ 76 77 uint32_t CaptureRate; /*!< Specifies the frequency of frame capture: All, 1/2 or 1/4. 78 This parameter can be a value of @ref DCMI_Capture_Rate */ 79 80 uint32_t ExtendedDataMode; /*!< Specifies the data width: 8-bit, 10-bit, 12-bit or 14-bit. 81 This parameter can be a value of @ref DCMI_Extended_Data_Mode */ 82 83 DCMI_CodesInitTypeDef SyncroCode; /*!< Specifies the code of the frame start delimiter. */ 84 85 uint32_t JPEGMode; /*!< Enable or Disable the JPEG mode 86 This parameter can be a value of @ref DCMI_MODE_JPEG */ 87 #if defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) 88 uint32_t ByteSelectMode; /*!< Specifies the data to be captured by the interface 89 This parameter can be a value of @ref DCMIEx_Byte_Select_Mode */ 90 91 uint32_t ByteSelectStart; /*!< Specifies if the data to be captured by the interface is even or odd 92 This parameter can be a value of @ref DCMIEx_Byte_Select_Start */ 93 94 uint32_t LineSelectMode; /*!< Specifies the line of data to be captured by the interface 95 This parameter can be a value of @ref DCMIEx_Line_Select_Mode */ 96 97 uint32_t LineSelectStart; /*!< Specifies if the line of data to be captured by the interface is even or odd 98 This parameter can be a value of @ref DCMIEx_Line_Select_Start */ 99 100 #endif /* STM32F446xx || STM32F469xx || STM32F479xx */ 101 }DCMI_InitTypeDef; 102 103 /** 104 * @} 105 */ 106 107 /* Exported constants --------------------------------------------------------*/ 108 #if defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) 109 /** @defgroup DCMIEx_Exported_Constants DCMI Exported Constants 110 * @{ 111 */ 112 113 /** @defgroup DCMIEx_Byte_Select_Mode DCMI Byte Select Mode 114 * @{ 115 */ 116 #define DCMI_BSM_ALL 0x00000000U /*!< Interface captures all received data */ 117 #define DCMI_BSM_OTHER ((uint32_t)DCMI_CR_BSM_0) /*!< Interface captures every other byte from the received data */ 118 #define DCMI_BSM_ALTERNATE_4 ((uint32_t)DCMI_CR_BSM_1) /*!< Interface captures one byte out of four */ 119 #define DCMI_BSM_ALTERNATE_2 ((uint32_t)(DCMI_CR_BSM_0 | DCMI_CR_BSM_1)) /*!< Interface captures two bytes out of four */ 120 121 /** 122 * @} 123 */ 124 125 /** @defgroup DCMIEx_Byte_Select_Start DCMI Byte Select Start 126 * @{ 127 */ 128 #define DCMI_OEBS_ODD 0x00000000U /*!< Interface captures first data from the frame/line start, second one being dropped */ 129 #define DCMI_OEBS_EVEN ((uint32_t)DCMI_CR_OEBS) /*!< Interface captures second data from the frame/line start, first one being dropped */ 130 131 /** 132 * @} 133 */ 134 135 /** @defgroup DCMIEx_Line_Select_Mode DCMI Line Select Mode 136 * @{ 137 */ 138 #define DCMI_LSM_ALL 0x00000000U /*!< Interface captures all received lines */ 139 #define DCMI_LSM_ALTERNATE_2 ((uint32_t)DCMI_CR_LSM) /*!< Interface captures one line out of two */ 140 141 /** 142 * @} 143 */ 144 145 /** @defgroup DCMIEx_Line_Select_Start DCMI Line Select Start 146 * @{ 147 */ 148 #define DCMI_OELS_ODD 0x00000000U /*!< Interface captures first line from the frame start, second one being dropped */ 149 #define DCMI_OELS_EVEN ((uint32_t)DCMI_CR_OELS) /*!< Interface captures second line from the frame start, first one being dropped */ 150 151 /** 152 * @} 153 */ 154 155 /** 156 * @} 157 */ 158 #endif /* STM32F446xx || STM32F469xx || STM32F479xx */ 159 160 /* Exported macro ------------------------------------------------------------*/ 161 /* Exported functions --------------------------------------------------------*/ 162 /* Private types -------------------------------------------------------------*/ 163 /* Private variables ---------------------------------------------------------*/ 164 /* Private constants ---------------------------------------------------------*/ 165 #define DCMI_POSITION_ESCR_LSC (uint32_t)DCMI_ESCR_LSC_Pos /*!< Required left shift to set line start delimiter */ 166 #define DCMI_POSITION_ESCR_LEC (uint32_t)DCMI_ESCR_LEC_Pos /*!< Required left shift to set line end delimiter */ 167 #define DCMI_POSITION_ESCR_FEC (uint32_t)DCMI_ESCR_FEC_Pos /*!< Required left shift to set frame end delimiter */ 168 169 /* Private macro -------------------------------------------------------------*/ 170 #if defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) 171 /** @defgroup DCMIEx_Private_Macros DCMI Extended Private Macros 172 * @{ 173 */ 174 #define IS_DCMI_BYTE_SELECT_MODE(MODE)(((MODE) == DCMI_BSM_ALL) || \ 175 ((MODE) == DCMI_BSM_OTHER) || \ 176 ((MODE) == DCMI_BSM_ALTERNATE_4) || \ 177 ((MODE) == DCMI_BSM_ALTERNATE_2)) 178 179 #define IS_DCMI_BYTE_SELECT_START(POLARITY)(((POLARITY) == DCMI_OEBS_ODD) || \ 180 ((POLARITY) == DCMI_OEBS_EVEN)) 181 182 #define IS_DCMI_LINE_SELECT_MODE(MODE)(((MODE) == DCMI_LSM_ALL) || \ 183 ((MODE) == DCMI_LSM_ALTERNATE_2)) 184 185 #define IS_DCMI_LINE_SELECT_START(POLARITY)(((POLARITY) == DCMI_OELS_ODD) || \ 186 ((POLARITY) == DCMI_OELS_EVEN)) 187 #endif /* STM32F446xx || STM32F469xx || STM32F479xx */ 188 /** 189 * @} 190 */ 191 192 /* Private functions ---------------------------------------------------------*/ 193 #endif /* STM32F407xx || STM32F417xx || STM32F427xx || STM32F437xx ||\ 194 STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx ||\ 195 STM32F479xx */ 196 197 198 /** 199 * @} 200 */ 201 202 /** 203 * @} 204 */ 205 206 #ifdef __cplusplus 207 } 208 #endif 209 210 #endif /* __STM32F4xx_HAL_DCMI_H */ 211 212 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 213