使用的是原子的 读写函数
读函数:void SPI_Flash_Read(u8* pBuffer,u32 ReadAddr,u16 NumByteToRead)
写函数:void SPI_Flash_Write(u8* pBuffer,u32 WriteAddr,u16 NumByteToWrite)
[mw_shl_code=c,true] while(1)
{
if((usart3_receive_data_flag==1)&&(time3_for_usart3_count_flag>=2)) //60ms
{
usart3_receive_data_flag=0;
time3_for_usart3_count_flag=0;
test_buf2[0]=0xaa;
test_buf2[1]=0xbb;
test_buf2[2]=0xcc;
test_buf2[3]=0xdd;
SPI_Flash_Write(test_buf2,0,2);
delay_ms(5);
SPI_Flash_Read(test_buf2,0,2);
usart3_Send_Data(test_buf2,2);
memset(test_buf2,0,sizeof(test_buf2));
}
}[/mw_shl_code]
能够正常的读写 串口也能正常的输出 aa bb
后来又换了 好几个 地址不过都是 小于0X3FFFFF这个的地址 也能正常的读取和从串口发送出来
之后就故意将地址写为 0X4FFFFF ,0X5FFFFF,0X6FFFFF,0X8FFFFF 不知道是为什么 怎么都能正常的读写
W25Q32 不是只有4M吗 ?????
请各路大神指教???!!!!
|