采用STM32F103系列芯片读写M25P80
能读到ID为202014,写完后读出数据全为255
使用STM32F103的SPI1
PB3————SPI1_SCK
PB4————SPI1_MISO
PB5————SPI1_MOSI
PD3————SPI1_NSS
以下为M25P80电路图
以下为与单片机引脚连接图
这里需要开启映射时钟和J-link的SW使能 否则PB3和PB4一个一直拉高
以下为配置代码
[code] void SPI_FLASH_Init(void)
{
SPI_InitTypeDef SPI_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO,ENABLE);
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
#define FLASH_WriteAddress 0x000020000 //注意这里地址超长了 所以出现问题
M25P80_Section_Erase(FLASH_WriteAddress);
// for(k=0; k<10; k++ )
delay_ms(1000);
id=SPI_FLASH_ReadID();
printf(" ID%x ", id);
M25P80_Write_Bytes(FLASH_WriteAddress,Tx_Buffer,BufferSize);
for( k=0; k<30; k++ )
printf(" дÈëµÄÊý¾ÝΪ£º%d ", Tx_Buffer[k]);
delay_ms(1000);
M25P80_Read_Bytes(FLASH_WriteAddress,Rx_Buffer, BufferSize);
for( k=0; k<30; k++ )
printf(" %d ", Rx_Buffer[k]);
感谢提供思路
一周热门 更多>