Compare commits

...

2 Commits

Author SHA1 Message Date
YUNLEI f8b55940ef modified: src/W25QXXArduino/w25qxx.cpp 2022-09-02 20:33:32 +08:00
YUNLEI 39f1f9eb3b modified: src/W25QXXArduino/w25qxx.cpp 2022-09-02 20:33:24 +08:00
4 changed files with 24 additions and 27 deletions

View File

@ -2,5 +2,6 @@
"configuration": "PSRAM=disabled,FlashMode=qio,FlashSize=4M,LoopCore=1,EventsCore=1,USBMode=hwcdc,CDCOnBoot=default,MSCOnBoot=default,DFUOnBoot=default,UploadMode=default,PartitionScheme=min_spiffs,CPUFreq=240,UploadSpeed=921600,DebugLevel=none",
"board": "esp32:esp32:esp32s3",
"sketch": "spi_test.ino",
"port": "COM10"
"port": "COM10",
"programmer": "esp32:esptool"
}

View File

@ -7,10 +7,6 @@ void setup() {
Serial.setRxBufferSize(256);
Serial.onReceive(SerialRe,true);
W25QXX_Init();
W25QXX_Write((uint8_t*)"my name is lei kkk",1000,strlen("my name is lei yun"));
W25QXX_Read(table,1001,strlen("my name is lei yun"));
// Serial.printf("%04X\n",W25QXX_TYPE);
Serial.printf("%s\n",table);
delay(3000);
}

View File

@ -45,10 +45,10 @@ void SPI1S_Init(void){
#ifdef FLASH_TEST_ENABLE
/* readwrite test */
int g = 0;
uint8_t str[1280];
uint8_t str[512];
memset(str, 0, sizeof(str));
unsigned int j = 0;
for(int k=0; k < 5; k++)
for(int k=0; k < 2; k++)
{
for(int i = 0; i < 256; i++)
{
@ -60,7 +60,10 @@ void SPI1S_Init(void){
Serial.println("-----write data-------");
W25QXX_CS0;
W25QXX_Erase_Sector(0x00);
W25QXX_Write(str,0x10,256);
for (uint8_t i = 0; i < 2; i++)
{
W25QXX_Write(&str[256*i],256*i,256);
}
memset(str, 0, sizeof(str));
W25QXX_Read(str,0x00,512);
W25QXX_CS1;
@ -69,13 +72,9 @@ void SPI1S_Init(void){
if(g == 16){
Serial.println("|");
if(k % 256 == 0) Serial.println("---------------");
{
g = 1;
}
}
else {
g++;
}
else g++;
Serial.printf("%02X ", str[k]);
}
#endif
@ -94,13 +93,14 @@ uint8_t SPI1_ReadWriteByte(uint8_t TxData)
return Rxdata;
#endif
#ifdef SOFTWARE_SPI
uint8_t i = 0, Rxdata = 0;
for(i = 0; i < 8; i++)
{
digitalWrite(NORFLASH_CLK_PIN, HIGH);
for(uint8_t i = 0; i < 8; i++) {
uint8_t status;
status = TxData & (0x80 >> i);
digitalWrite(NORFLASH_MOSI_PIN, status);
digitalWrite(NORFLASH_CLK_PIN, LOW);
if(digitalRead(NORFLASH_MISO_PIN))
{
digitalWrite(NORFLASH_CLK_PIN, HIGH);
if(digitalRead(NORFLASH_MISO_PIN)) {
Rxdata |= 0x80 >> i;
}
}

View File

@ -49,12 +49,12 @@ extern uint16_t W25QXX_TYPE; //
//////////////////////////////////////////////////////////////////////////
//SPI相关设定
#define SPI_FREQUENCY 30*1000000 //SPI时钟频率硬件SPI使用
#define HARDWARE_SPI //使用硬件SPI
// #define SOFTWARE_SPI //使用软件SPI
// #define FLASH_TEST_ENABLE //使能测试
// #define HARDWARE_SPI //使用硬件SPI
#define SOFTWARE_SPI //使用软件SPI
#define FLASH_TEST_ENABLE //使能测试
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//指令表
#define W25X_WriteEnable 0x06
#define W25X_WriteDisable 0x04