資源簡介
GD5F4GQ4xC芯片STM32HAL庫驅動程序:使用STM32HAL庫完成了SPI的初始化,以及GD5F4GQxC FLASH芯片的讀取,擦除,寫入,復位,初始化等程序。

代碼片段和文件信息
/*?Includes?------------------------------------------------------------------*/
#include?“GD5F4G_SPI.h“
/*?USER?CODE?BEGIN?0?*/
/*?USER?CODE?END?0?*/
SPI_HandleTypeDef?hspi2;
DMA_HandleTypeDef?hdma_spi2_rx;
/*?SPI1?init?function?*/
void?MX_SPI1_Init(void)
{
??hspi1.Instance?=?SPI1;
??hspi1.Init.Mode?=?SPI_MODE_MASTER;
??hspi1.Init.Direction?=?SPI_DIRECTION_2LINES;
??hspi1.Init.DataSize?=?SPI_DATASIZE_8BIT;
??hspi1.Init.CLKPolarity?=?SPI_POLARITY_LOW;
??hspi1.Init.CLKPhase?=?SPI_PHASE_1EDGE;
??hspi1.Init.NSS?=?SPI_NSS_SOFT;
??hspi1.Init.BaudRatePrescaler?=?SPI_BAUDRATEPRESCALER_32;
??hspi1.Init.FirstBit?=?SPI_FIRSTBIT_MSB;
??hspi1.Init.TIMode?=?SPI_TIMODE_DISABLE;
??hspi1.Init.CRCCalculation?=?SPI_CRCCALCULATION_DISABLE;
??hspi1.Init.CRCPolynomial?=?10;
??if?(HAL_SPI_Init(&hspi1)?!=?HAL_OK)
??{
????Error_Handler();
??}
}
void?HAL_SPI_MspInit(SPI_HandleTypeDef*?spiHandle)
{
??GPIO_InitTypeDef?GPIO_InitStruct?=?{0};
??/*?USER?CODE?BEGIN?SPI2_MspInit?0?*/
??/*?USER?CODE?END?SPI2_MspInit?0?*/
????/*?SPI2?clock?enable?*/
????__HAL_RCC_SPI2_CLK_ENABLE();
??
????__HAL_RCC_GPIOB_CLK_ENABLE();
????/**SPI2?GPIO?Configuration????
????PB10?????------>?SPI2_SCK
????PB14?????------>?SPI2_MISO
????PB15?????------>?SPI2_MOSI?
????*/
????GPIO_InitStruct.Pin?=?GPIO_PIN_10|GPIO_PIN_14|GPIO_PIN_15;
????GPIO_InitStruct.Mode?=?GPIO_MODE_AF_PP;
????GPIO_InitStruct.Pull?=?GPIO_NOPULL;
????GPIO_InitStruct.Speed?=?GPIO_SPEED_FREQ_VERY_HIGH;
????GPIO_InitStruct.Alternate?=?GPIO_AF5_SPI2;
????HAL_GPIO_Init(GPIOB?&GPIO_InitStruct);
????/*?SPI2?DMA?Init?*/
????/*?SPI2_RX?Init?*/
????hdma_spi2_rx.Instance?=?DMA1_Stream3;
????hdma_spi2_rx.Init.Channel?=?DMA_CHANNEL_0;
????hdma_spi2_rx.Init.Direction?=?DMA_PERIPH_TO_MEMORY;
????hdma_spi2_rx.Init.PeriphInc?=?DMA_PINC_DISABLE;
????hdma_spi2_rx.Init.MemInc?=?DMA_MINC_ENABLE;
????hdma_spi2_rx.Init.PeriphDataAlignment?=?DMA_PDATAALIGN_BYTE;
????hdma_spi2_rx.Init.MemDataAlignment?=?DMA_MDATAALIGN_BYTE;
????hdma_spi2_rx.Init.Mode?=?DMA_NORMAL;
????hdma_spi2_rx.Init.Priority?=?DMA_PRIORITY_LOW;
????hdma_spi2_rx.Init.FIFOMode?=?DMA_FIFOMODE_DISABLE;
????if?(HAL_DMA_Init(&hdma_spi2_rx)?!=?HAL_OK)
????{
??????Error_Handler();
????}
????__HAL_linkDMA(spiHandlehdmarxhdma_spi2_rx);
??/*?USER?CODE?BEGIN?SPI2_MspInit?1?*/
??/*?USER?CODE?END?SPI2_MspInit?1?*/
??
}
void?HAL_SPI_MspDeInit(SPI_HandleTypeDef*?spiHandle)
{
??spiHandle->Instance==SPI2
??
??/*?USER?CODE?BEGIN?SPI2_MspDeInit?0?*/
??/*?USER?CODE?END?SPI2_MspDeInit?0?*/
????/*?Peripheral?clock?disable?*/
????__HAL_RCC_SPI2_CLK_DISABLE();
??
????/**SPI2?GPIO?Configuration????
????PB10?????------>?SPI2_SCK
????PB14?????------>?SPI2_MISO
????PB15?????------>?SPI2_MOSI?
????*/
????HAL_GPIO_DeInit(GPIOB?GPIO_PIN_10|GPIO_PIN_14|GPIO_PIN_15);
????/*?SPI2?DMA?DeInit?*/
????HAL_DMA_DeInit(spiHandle->hdmarx);
??/*?USER?CODE?BEGIN?SPI2_MspDeInit?1?*/
??/*?USER?CODE?END
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????2492??2020-07-24?09:14??GD5F4G_SPI.h
?????文件???????11143??2020-07-24?09:19??GD5F4G_SPI.c
評論
共有 條評論