MX25L51245G 支持SPI的MODE0/MODE3,一般都选择mode3
#define FLASH_SECTOR_SIZE(4*1024)
#define FLASH_PAGE_SIZE256
引脚定义
/*
* SPI1
* @SCK : PA5
* @MISO : PA6
* @MOSI : PA7
*
* @CS : PA0
*/
读写接口
static u8 SPI_Write(u8 byte)
{
u32 timeout = 0xFFFF;
while(!(SPI1->SR & SPI_I2S_FLAG_TXE))
{
if(--timeout == 0)
{
printf("TX timeout ! rn");
return 0;
}
}
SPI1->DR = byte;
timeout = 0xFFFF;
while(!(SPI1->SR & SPI_I2S_FLAG_RXNE))
if(--timeout == 0)
{
printf("RX timeout ! rn");
return 0;
}
return SPI1->DR;
}
static u8 SPI_Read(void)
{
return (SPI_Write(DUMMY_BYTE));
}
初始化函数
void SPI1_Configuration(void)
{
SPI_InitTypeDef SPI_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
/* Configure S