135#ifdef HAL_DCMI_MODULE_ENABLED
137#if defined(STM32F407xx) || defined(STM32F417xx) || defined(STM32F427xx) || defined(STM32F437xx) ||\
138 defined(STM32F429xx) || defined(STM32F439xx) || defined(STM32F446xx) || defined(STM32F469xx) ||\
142#define HAL_TIMEOUT_DCMI_STOP 14U
201#if (USE_HAL_DCMI_REGISTER_CALLBACKS == 1)
207 if(hdcmi->MspInitCallback == NULL)
213 hdcmi->MspInitCallback(hdcmi);
226 hdcmi->
Instance->CR &= ~(DCMI_CR_PCKPOL | DCMI_CR_HSPOL | DCMI_CR_VSPOL | DCMI_CR_EDM_0 |
227 DCMI_CR_EDM_1 | DCMI_CR_FCRC_0 | DCMI_CR_FCRC_1 | DCMI_CR_JPEG |
264#if (USE_HAL_DCMI_REGISTER_CALLBACKS == 1)
265 if(hdcmi->MspDeInitCallback == NULL)
270 hdcmi->MspDeInitCallback(hdcmi);
350 uint32_t SecondMemAddress = 0U;
365 hdcmi->
Instance->CR &= ~(DCMI_CR_CM);
366 hdcmi->
Instance->CR |= (uint32_t)(DCMI_Mode);
381 if(Length <= 0xFFFFU)
408 SecondMemAddress = (uint32_t)(pData + (4U*hdcmi->
XferSize));
415 hdcmi->
Instance->CR |= DCMI_CR_CAPTURE;
442 hdcmi->
Instance->CR &= ~(DCMI_CR_CAPTURE);
456 while((hdcmi->
Instance->CR & DCMI_CR_CAPTURE) != 0U);
497 hdcmi->
Instance->CR &= ~(DCMI_CR_CAPTURE);
514 while((hdcmi->
Instance->CR & DCMI_CR_CAPTURE) != 0);
540 hdcmi->
Instance->CR |= DCMI_CR_CAPTURE;
557 uint32_t isr_value = READ_REG(hdcmi->
Instance->MISR);
602#if (USE_HAL_DCMI_REGISTER_CALLBACKS == 1)
604 hdcmi->LineEventCallback(hdcmi);
616#if (USE_HAL_DCMI_REGISTER_CALLBACKS == 1)
618 hdcmi->VsyncEventCallback(hdcmi);
637#if (USE_HAL_DCMI_REGISTER_CALLBACKS == 1)
639 hdcmi->FrameEventCallback(hdcmi);
777 hdcmi->
Instance->CR &= ~(uint32_t)DCMI_CR_CROP;
803 hdcmi->
Instance->CR |= (uint32_t)DCMI_CR_CROP;
887#if (USE_HAL_DCMI_REGISTER_CALLBACKS == 1)
900 if(pCallback == NULL)
903 hdcmi->
ErrorCode |= HAL_DCMI_ERROR_INVALID_CALLBACK;
913 case HAL_DCMI_FRAME_EVENT_CB_ID :
914 hdcmi->FrameEventCallback = pCallback;
917 case HAL_DCMI_VSYNC_EVENT_CB_ID :
918 hdcmi->VsyncEventCallback = pCallback;
921 case HAL_DCMI_LINE_EVENT_CB_ID :
922 hdcmi->LineEventCallback = pCallback;
925 case HAL_DCMI_ERROR_CB_ID :
926 hdcmi->ErrorCallback = pCallback;
929 case HAL_DCMI_MSPINIT_CB_ID :
930 hdcmi->MspInitCallback = pCallback;
933 case HAL_DCMI_MSPDEINIT_CB_ID :
934 hdcmi->MspDeInitCallback = pCallback;
947 case HAL_DCMI_MSPINIT_CB_ID :
948 hdcmi->MspInitCallback = pCallback;
951 case HAL_DCMI_MSPDEINIT_CB_ID :
952 hdcmi->MspDeInitCallback = pCallback;
957 hdcmi->
ErrorCode |= HAL_DCMI_ERROR_INVALID_CALLBACK;
966 hdcmi->
ErrorCode |= HAL_DCMI_ERROR_INVALID_CALLBACK;
989 case HAL_DCMI_FRAME_EVENT_CB_ID :
993 case HAL_DCMI_VSYNC_EVENT_CB_ID :
997 case HAL_DCMI_LINE_EVENT_CB_ID :
1001 case HAL_DCMI_ERROR_CB_ID :
1005 case HAL_DCMI_MSPINIT_CB_ID :
1009 case HAL_DCMI_MSPDEINIT_CB_ID :
1015 hdcmi->
ErrorCode |= HAL_DCMI_ERROR_INVALID_CALLBACK;
1025 case HAL_DCMI_MSPINIT_CB_ID :
1029 case HAL_DCMI_MSPDEINIT_CB_ID :
1035 hdcmi->
ErrorCode |= HAL_DCMI_ERROR_INVALID_CALLBACK;
1044 hdcmi->
ErrorCode |= HAL_DCMI_ERROR_INVALID_CALLBACK;
1077 if(((hdcmi->
XferCount % 2U) == 0U) && (tmp != 0U))
1135#if (USE_HAL_DCMI_REGISTER_CALLBACKS == 1)
1137 hdcmi->ErrorCallback(hdcmi);
#define DCMI_POSITION_ESCR_FEC
#define DCMI_POSITION_ESCR_LSC
#define DCMI_POSITION_ESCR_LEC
#define DCMI_MODE_SNAPSHOT
#define HAL_DCMI_ERROR_NONE
#define HAL_DCMI_ERROR_TIMEOUT
#define HAL_DCMI_ERROR_OVR
#define HAL_DCMI_ERROR_SYNC
void HAL_DCMI_MspInit(DCMI_HandleTypeDef *hdcmi)
Initializes the DCMI MSP.
void HAL_DCMI_MspDeInit(DCMI_HandleTypeDef *hdcmi)
DeInitializes the DCMI MSP.
HAL_StatusTypeDef HAL_DCMI_DeInit(DCMI_HandleTypeDef *hdcmi)
Deinitializes the DCMI peripheral registers to their default reset values.
HAL_StatusTypeDef HAL_DCMI_Init(DCMI_HandleTypeDef *hdcmi)
Initializes the DCMI according to the specified parameters in the DCMI_InitTypeDef and create the ass...
void HAL_DCMI_IRQHandler(DCMI_HandleTypeDef *hdcmi)
Handles DCMI interrupt request.
void HAL_DCMI_LineEventCallback(DCMI_HandleTypeDef *hdcmi)
Line Event callback.
HAL_StatusTypeDef HAL_DCMI_Stop(DCMI_HandleTypeDef *hdcmi)
Disable DCMI DMA request and Disable DCMI capture.
void HAL_DCMI_VsyncEventCallback(DCMI_HandleTypeDef *hdcmi)
VSYNC Event callback.
HAL_StatusTypeDef HAL_DCMI_Start_DMA(DCMI_HandleTypeDef *hdcmi, uint32_t DCMI_Mode, uint32_t pData, uint32_t Length)
Enables DCMI DMA request and enables DCMI capture.
HAL_StatusTypeDef HAL_DCMI_Resume(DCMI_HandleTypeDef *hdcmi)
Resume DCMI capture
void HAL_DCMI_ErrorCallback(DCMI_HandleTypeDef *hdcmi)
Error DCMI callback.
void HAL_DCMI_FrameEventCallback(DCMI_HandleTypeDef *hdcmi)
Frame Event callback.
HAL_StatusTypeDef HAL_DCMI_Suspend(DCMI_HandleTypeDef *hdcmi)
Suspend DCMI capture
HAL_StatusTypeDef HAL_DCMI_EnableCrop(DCMI_HandleTypeDef *hdcmi)
Enable the Crop feature.
HAL_StatusTypeDef HAL_DCMI_ConfigCrop(DCMI_HandleTypeDef *hdcmi, uint32_t X0, uint32_t Y0, uint32_t XSize, uint32_t YSize)
Configure the DCMI CROP coordinate.
HAL_StatusTypeDef HAL_DCMI_ConfigSyncUnmask(DCMI_HandleTypeDef *hdcmi, DCMI_SyncUnmaskTypeDef *SyncUnmask)
Set embedded synchronization delimiters unmasks.
HAL_StatusTypeDef HAL_DCMI_DisableCrop(DCMI_HandleTypeDef *hdcmi)
Disable the Crop feature.
uint32_t HAL_DCMI_GetError(DCMI_HandleTypeDef *hdcmi)
Return the DCMI error code.
HAL_DCMI_StateTypeDef HAL_DCMI_GetState(DCMI_HandleTypeDef *hdcmi)
Return the DCMI state.
#define __HAL_DCMI_DISABLE(__HANDLE__)
Disable the DCMI.
#define __HAL_DCMI_CLEAR_FLAG(__HANDLE__, __FLAG__)
Clear the DCMI pending flags.
#define __HAL_DCMI_DISABLE_IT(__HANDLE__, __INTERRUPT__)
Disable the specified DCMI interrupts.
#define __HAL_DCMI_ENABLE(__HANDLE__)
Enable the DCMI.
#define __HAL_DCMI_ENABLE_IT(__HANDLE__, __INTERRUPT__)
Enable the specified DCMI interrupts.
HAL_DCMI_StateTypeDef
HAL DCMI State structures definition.
@ HAL_DCMI_STATE_SUSPENDED
#define DCMI_FLAG_VSYNCRI
#define DCMI_FLAG_FRAMERI
DCMI RIS register.
#define IS_DCMI_PCKPOLARITY(POLARITY)
#define IS_DCMI_SYNCHRO(MODE)
#define IS_DCMI_CAPTURE_MODE(MODE)
#define IS_DCMI_WINDOW_HEIGHT(HEIGHT)
#define IS_DCMI_MODE_JPEG(JPEG_MODE)
#define IS_DCMI_VSPOLARITY(POLARITY)
#define IS_DCMI_HSPOLARITY(POLARITY)
#define IS_DCMI_WINDOW_COORDINATE(COORDINATE)
#define IS_DCMI_EXTENDED_DATA(DATA)
#define IS_DCMI_CAPTURE_RATE(RATE)
#define DCMI_SYNCHRO_EMBEDDED
#define DCMI_POSITION_CWSIZE_VLINE
#define DCMI_POSITION_CWSTRT_VST
static void DCMI_DMAError(DMA_HandleTypeDef *hdma)
DMA error callback.
static void DCMI_DMAXferCplt(DMA_HandleTypeDef *hdma)
DMA conversion complete callback.
#define HAL_TIMEOUT_DCMI_STOP
HAL_StatusTypeDef HAL_DMAEx_ChangeMemory(DMA_HandleTypeDef *hdma, uint32_t Address, HAL_DMA_MemoryTypeDef memory)
Change the memory0 or memory1 address on the fly.
HAL_StatusTypeDef HAL_DMAEx_MultiBufferStart_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t SecondMemAddress, uint32_t DataLength)
Starts the multi_buffer DMA Transfer with interrupt enabled.
HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma)
Aborts the DMA Transfer.
HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma)
Aborts the DMA Transfer in Interrupt mode.
HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
Start the DMA Transfer with interrupt enabled.
#define assert_param(expr)
This file contains all the functions prototypes for the HAL module driver.
HAL_StatusTypeDef
HAL Status structures definition
#define __HAL_UNLOCK(__HANDLE__)
#define __HAL_LOCK(__HANDLE__)
uint32_t ExtendedDataMode
DCMI_CodesInitTypeDef SyncroCode
DCMI Embedded Synchronisation CODE Init structure definition.
DCMI handle Structure definition.
uint32_t XferTransferNumber
DMA_HandleTypeDef * DMA_Handle
__IO HAL_DCMI_StateTypeDef State
DMA handle Structure definition.
void(* XferAbortCallback)(struct __DMA_HandleTypeDef *hdma)
void(* XferCpltCallback)(struct __DMA_HandleTypeDef *hdma)
void(* XferErrorCallback)(struct __DMA_HandleTypeDef *hdma)
DMA_Stream_TypeDef * Instance
void(* XferM1CpltCallback)(struct __DMA_HandleTypeDef *hdma)