Closed fresird closed 3 years ago
@fresird, Thanks for notice
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);
}
@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
size == 32 || size == 64 will return W25Q_PARAM_ERR. I think Line 859 should be changed to if (size != 32 && size != 64) /**