DCMI for f446re ,ov7670
Dependencies: ILI9341_SPI OV7670_SCCB mbed
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 }
Generated on Sat Jul 23 2022 09:21:33 by 1.7.2