It's nucleo f4 DMA trandfer for ov7670&ILI9341.
Dependencies: mbed ILI9341_SPI OV7670_SCCB
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 }
Generated on Fri Jul 15 2022 11:31:21 by 1.7.2