×

基于AT32编写的W25Q32/64/128驱动程序

消耗积分:2 | 格式:rar | 大小:0.00 MB | 2022-12-30

jf_14231452

分享资料个

驱动程序基于AT32编写的,更换相关头文件及驱动IO即可使用。

#include "at32f4xx.h"
#include "spi_flash.h"

uint8_t SpiFlash_SectorBuf[SPIF_SECTOR_SIZE];/* a sector size */

uint8_t SpiFlash_Init(void)
{
 GPIO_InitType GPIO_InitStructure;
 SPI_InitType  SPI_InitStructure;

 RCC_APB2PeriphClockCmd(SPIx_RCC_CLK | SPIx_GPIO_RCC_CLK, ENABLE);
 RCC_AHBPeriphClockCmd(SPIx_DMA_RCC_CLK, ENABLE);

 /* Configure SPI_FLASH pins*/
 GPIO_InitStructure.GPIO_Pins =  SPIx_PIN_MOSI;
 GPIO_InitStructure.GPIO_MaxSpeed = GPIO_MaxSpeed_10MHz; 
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
 GPIO_Init(SPIx_PORT_MOSI, &GPIO_InitStructure);

 GPIO_InitStructure.GPIO_Pins = SPIx_PIN_MISO;
 GPIO_InitStructure.GPIO_MaxSpeed = GPIO_MaxSpeed_10MHz;  
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
 GPIO_Init(SPIx_PORT_MISO, &GPIO_InitStructure);

 GPIO_InitStructure.GPIO_Pins = SPIx_PIN_NSS;
 GPIO_InitStructure.GPIO_MaxSpeed = GPIO_MaxSpeed_10MHz;  
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT_PP;
 GPIO_Init(SPIx_PORT_NSS, &GPIO_InitStructure);  

 GPIO_InitStructure.GPIO_Pins =  SPIx_PIN_SCK;
 GPIO_InitStructure.GPIO_MaxSpeed = GPIO_MaxSpeed_10MHz; 
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
 GPIO_Init(SPIx_PORT_SCK, &GPIO_InitStructure);

 FLASH_CS_HIGH();
 /* SPI_FLASH configuration ------------------------------------------------------*/
 SPI_InitStructure.SPI_TransMode = SPI_TRANSMODE_FULLDUPLEX;
 SPI_InitStructure.SPI_CPHA = SPI_CPHA_2EDGE;
 SPI_InitStructure.SPI_CPOL = SPI_CPOL_HIGH;
 SPI_InitStructure.SPI_CPOLY = 0;
 SPI_InitStructure.SPI_FirstBit = SPI_FIRSTBIT_MSB;
 SPI_InitStructure.SPI_FrameSize = SPI_FRAMESIZE_8BIT;
 SPI_InitStructure.SPI_MCLKP = SPI_MCLKP_8;
 SPI_InitStructure.SPI_NSSSEL = SPI_NSSSEL_SOFT;
 SPI_InitStructure.SPI_Mode = SPI_MODE_MASTER;
 SPI_Init(FLASH_SPI, &SPI_InitStructure);

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !