new file: .vscode/arduino.json
modified: src/W25QXXArduino/w25qxx.cpp modified: src/W25QXXArduino/w25qxx.hsecond
parent
07b33f32ec
commit
83b1342093
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"configuration": "PSRAM=disabled,PartitionScheme=default,CPUFreq=240,FlashMode=qio,FlashFreq=80,FlashSize=4M,UploadSpeed=921600,LoopCore=1,EventsCore=1,DebugLevel=none",
|
||||
"board": "esp32:esp32:esp32",
|
||||
"sketch": "spi_test.ino"
|
||||
}
|
|
@ -259,6 +259,33 @@ void W25QXX_Write_Page(uint8_t* pBuffer,uint32_t WriteAddr,uint16_t NumByteToWri
|
|||
W25QXX_CS1; //取消片选
|
||||
W25QXX_Wait_Busy(); //等待写入结束
|
||||
}
|
||||
/**
|
||||
* @brief 只能写入一页的数据,刚好256字节.
|
||||
*
|
||||
* @param pBuffer 待写入的数据256字节
|
||||
* @param WriteAddr flash的首地址,确保是页的开头地址。
|
||||
* @return uint8_t 错误返回1,完成返回0
|
||||
*/
|
||||
uint8_t W25QXX_Write_Page_Only(uint8_t* pBuffer,uint16_t WriteAddr){
|
||||
uint16_t i;
|
||||
if ((WriteAddr%256)!=0){
|
||||
return 1; //要写入的地址不是页首地址就直接返回
|
||||
}
|
||||
W25QXX_Write_Enable(); //SET WEL
|
||||
W25QXX_CS0; //使能器件
|
||||
SPI1_ReadWriteByte(W25X_PageProgram); //发送写页命令
|
||||
if(W25QXX_TYPE==W25Q256) //如果是W25Q256的话地址为4字节的,要发送最高8位
|
||||
{
|
||||
SPI1_ReadWriteByte((uint8_t)((WriteAddr)>>24));
|
||||
}
|
||||
SPI1_ReadWriteByte((uint8_t)((WriteAddr)>>16)); //发送24bit地址
|
||||
SPI1_ReadWriteByte((uint8_t)((WriteAddr)>>8));
|
||||
SPI1_ReadWriteByte((uint8_t)WriteAddr);
|
||||
SPI.writeBytes(pBuffer,256); //写256个数据
|
||||
W25QXX_CS1; //取消片选
|
||||
W25QXX_Wait_Busy(); //等待写入结束
|
||||
return 0;
|
||||
}
|
||||
//无检验写SPI FLASH
|
||||
//必须确保所写的地址范围内的数据全部为0XFF,否则在非0XFF处写入的数据将失败!
|
||||
//具有自动换页功能
|
||||
|
|
|
@ -89,3 +89,4 @@ void W25QXX_Erase_Sector(uint32_t Dst_Addr); //
|
|||
void W25QXX_Wait_Busy(void); //µÈ´ý¿ÕÏÐ
|
||||
void W25QXX_PowerDown(void); //½øÈëµôµçģʽ
|
||||
void W25QXX_WAKEUP(void); //»½ÐÑ
|
||||
uint8_t W25QXX_Write_Page_Only(uint8_t* pBuffer,uint16_t WriteAdd);
|
||||
|
|
Loading…
Reference in New Issue