使用的是F403A,W25Q64,用的403标准库的flash例程改的,闪存接403A SPI1口,管教重映射到PB.3 4 5引脚,编译后无法读取闪存。请教如下SPI初始化代码是否有问题?
uint8_t SpiFlash_Init(void)
{
GPIO_InitType GPIO_InitStructure;
SPI_InitType SPI_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2PERIPH_AFIO, ENABLE); /*AFIO复用时钟开启*/
RCC_APB2PeriphClockCmd(SPIx_RCC_CLK | SPIx_GPIO_RCC_CLK, ENABLE);
RCC_AHBPeriphClockCmd(SPIx_DMA_RCC_CLK, ENABLE);
GPIO_PinsRemapConfig(GPIO_Remap01_SPI1, ENABLE); /*SPI1 引脚重映射*/
/* 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(); |