DCMI for f446re ,ov7670

Dependencies:   ILI9341_SPI OV7670_SCCB mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers SPI_DMAInit.h Source File

SPI_DMAInit.h

00001 #include "mbed.h"
00002 
00003  
00004 
00005 DMA_HandleTypeDef    SPIDma;
00006 SPI_HandleTypeDef   spi1;
00007 
00008 
00009 void spi_Init() {
00010     
00011     
00012     __DMA2_CLK_ENABLE();
00013     SPIDma.Instance = DMA2_Stream3;
00014     SPIDma.Init.Channel = DMA_CHANNEL_3;
00015     SPIDma.Init.Direction = DMA_MEMORY_TO_PERIPH;
00016     SPIDma.Init.PeriphInc = DMA_PINC_DISABLE;
00017     SPIDma.Init.MemInc = DMA_MINC_ENABLE;
00018     SPIDma.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;  // 8 bit
00019     SPIDma.Init.MemDataAlignment = DMA_PDATAALIGN_BYTE;     // 8 bit
00020     SPIDma.Init.Mode =   DMA_CIRCULAR;
00021     SPIDma.Init.Priority = DMA_PRIORITY_HIGH;
00022     SPIDma.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
00023     HAL_DMA_Init(&SPIDma);
00024     
00025     // SPI pin
00026     __GPIOB_CLK_ENABLE();
00027     GPIO_InitTypeDef spipins;
00028     spipins.Pin = GPIO_PIN_5|GPIO_PIN_4|GPIO_PIN_3;
00029     spipins.Mode = GPIO_MODE_AF_PP;
00030     spipins.Pull = GPIO_PULLDOWN;
00031     spipins.Speed = GPIO_SPEED_HIGH;
00032     spipins.Alternate =  GPIO_AF5_SPI1;
00033     HAL_GPIO_Init(GPIOB, &spipins);
00034     
00035  // SPI
00036    __SPI1_CLK_ENABLE();
00037     spi1.Init.Mode = SPI_MODE_MASTER;
00038     spi1.Init.Direction = SPI_DIRECTION_2LINES;
00039     spi1.Init.DataSize = SPI_DATASIZE_8BIT;
00040     spi1.Init.CLKPolarity= SPI_POLARITY_LOW;//パリティビット無し
00041     spi1.Init.CLKPhase = SPI_PHASE_1EDGE;    // transmit only mode 送信のみ
00042     spi1.Init.NSS = SPI_NSS_SOFT; 
00043     spi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; 
00044     spi1.Init.FirstBit = SPI_FIRSTBIT_MSB ;
00045     spi1.Init.CRCPolynomial = 7;
00046 
00047     spi1.Instance = SPI1;
00048     spi1.hdmatx = &SPIDma;
00049    HAL_SPI_Init(&spi1);
00050      
00051     
00052 }