Crazy-Geeks / STM32-W25Q-QSPI

STM32 Winbond W25Q memory Quad SPI Driver
https://crazy-geeks.github.io/STM32-W25Q-QSPI/
MIT License
80 stars 27 forks source link

W25Q_EraseBlock return W25Q_PARAM_ERR #1

Closed fresird closed 3 years ago

fresird commented 3 years ago

size == 32 || size == 64 will return W25Q_PARAM_ERR. I think Line 859 should be changed to if (size != 32 && size != 64) /**

Crazy-Geeks commented 3 years ago

@fresird, Thanks for notice

fresird commented 3 years ago

Hi @Crazy-Geeks , Thanks you for your great W25Q library. I find if I write 256 bytes with pageShift == 0, W25Q_ProgramData return W25Q_PARAM_ERR. I changed 255 to 256, and It works very well. W25Q_STATE W25Q_ProgramData(uint8_t buf, uint16_t len, uint8_t pageShift, uint32_t pageNum) { / if (pageNum >= PAGE_COUNT || len == 0 || len > 256 || pageShift > 255 - len || (pageShift > 0 && pageNum >= PAGE_COUNT - 1)) return W25Q_PARAM_ERR; */ if (pageNum >= PAGE_COUNT || len == 0 || len > 256 || pageShift > 256 - len || (pageShift > 0 && pageNum >= PAGE_COUNT - 1)) return W25Q_PARAM_ERR;
uint32_t rawAddr = page_to_addr(pageNum, pageShift); return W25Q_ProgramRaw(buf, len, rawAddr); }

Crazy-Geeks commented 3 years ago

@fresird I haven't tested it well, so I've missed this error, I'll fix this. If you find bugs later - create pull request, please