It's nucleo f4 DMA trandfer for ov7670&ILI9341.

Dependencies:   mbed ILI9341_SPI OV7670_SCCB

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers TIM_DMAInit.h Source File

TIM_DMAInit.h

00001 #include "mbed.h"
00002 
00003 
00004 DMA_HandleTypeDef DMA_HandleType ={
00005     DMA2_Stream1,
00006     {
00007         DMA_CHANNEL_6,  // Request source is TIM_CH1
00008         DMA_PERIPH_TO_MEMORY,
00009         DMA_PINC_DISABLE,
00010         DMA_MINC_ENABLE,             
00011         DMA_PDATAALIGN_BYTE,
00012         DMA_MDATAALIGN_BYTE,
00013         DMA_CIRCULAR,//DMA_PFCTRL,//
00014         DMA_PRIORITY_VERY_HIGH,
00015         DMA_FIFOMODE_DISABLE,//DMA_FIFOMODE_ENABLE,
00016         DMA_FIFO_THRESHOLD_HALFFULL,
00017          DMA_PBURST_INC4 ,
00018         DMA_PBURST_SINGLE
00019     },
00020     HAL_UNLOCKED,
00021     HAL_DMA_STATE_RESET,//HAL_DMA_STATE_READY
00022     NULL, // parent
00023     NULL, //dma_transfer_complete, // XferCpltCallback
00024     NULL, // XferHalfCpltCallback
00025     NULL, // XferM1CpltCallback
00026     NULL, //dma_error, // XferErrorCallback
00027     NULL  // ErrorCode
00028 };
00029 
00030 TIM_HandleTypeDef         htim;
00031 
00032 
00033 
00034 void dma_init(void)
00035 {
00036     TIM_IC_InitTypeDef       icconf;
00037     GPIO_InitTypeDef gpioconf;   
00038     __DMA2_CLK_ENABLE();
00039     __TIM1_CLK_ENABLE();
00040     __GPIOA_CLK_ENABLE();
00041 
00042     
00043     
00044     /* PA8 -> TIM1_CH1  */
00045    
00046     gpioconf.Mode = GPIO_MODE_AF_OD;
00047      gpioconf.Pin = GPIO_PIN_8;
00048     gpioconf.Pull = GPIO_PULLUP;
00049     gpioconf.Speed = GPIO_SPEED_HIGH;
00050     gpioconf.Alternate = GPIO_AF1_TIM1;
00051     HAL_GPIO_Init(GPIOA, &gpioconf);
00052 
00053     HAL_DMA_Init(&DMA_HandleType);
00054  
00055     htim.Instance = TIM1;
00056     htim.Init.Period        = 1;
00057     htim.Init.Prescaler     = 0;
00058     htim.Init.ClockDivision = 0;
00059     htim.Init.CounterMode   = TIM_COUNTERMODE_UP;
00060     HAL_TIM_IC_Init(&htim);
00061     
00062     icconf.ICPolarity  = TIM_ICPOLARITY_FALLING;
00063     //icconf.ICPolarity  = TIM_ICPOLARITY_RISING;
00064     icconf.ICSelection = TIM_ICSELECTION_DIRECTTI;
00065     icconf.ICPrescaler = TIM_ICPSC_DIV1;
00066     icconf.ICFilter    = 0;
00067     HAL_TIM_IC_ConfigChannel(&htim, &icconf, TIM_CHANNEL_1);
00068     __HAL_TIM_ENABLE_DMA(&htim, TIM_DMA_CC1);
00069     
00070     /* Start the TIM1 Channel1 */
00071     HAL_TIM_IC_Start(&htim, TIM_CHANNEL_1);
00072     
00073 }