SPI FLASH(W25Q128) 一次性写入的最大字节数是65535?

2019-07-20 23:13发布




以下是示例中的代码


//4Kbytes为一个Sector
//16个扇区为一个Block
//W25Q128
//容量为16M字节,共有128个Block,4096个Sector


//写SPI FLASH  
//pBuffer:数据存储区
//WriteAddr:开始写入的地址(24bit)                                               
//NumByteToWrite:要写的字节数(最大65535)
#if W25QXX_USE_MALLOC==0
u8 W25QXX_BUFFER[4096];                 
#endif
void W25QXX_Write(u8* pBuffer,u32 WriteAddr,u32 NumByteToWrite)   
{


}

这里说的是一次性最大只能写入65535个字节,即一个Block。
1.为什么一次只能写入一个BLock?
2.我试过一次性写入超过65535个字节,写入也是正常的,这是为什么?





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
正点原子
1楼-- · 2019-07-21 00:15
 精彩回答 2  元偷偷看……
li13158
2楼-- · 2019-07-21 01:36
新人贴,自己顶一个 !!!
正点原子
3楼-- · 2019-07-21 06:34
楼主,你一步只能走不到1m,要你走2000米,怎么办啊。。。好难啊。。。
li13158
4楼-- · 2019-07-21 12:03
正点原子 发表于 2016-3-26 09:44
决定写入数据是多少的,是NumByteToWrite的数据类型。我们以前应该是u16的,所以才有65535之说。如果是u32 ...

额,明白了。每次写入的buffer  是指buffer ,而不是整个数组。
但是你那个65535  应该是一个block的大小  4kB*16 = 65536bytes  ,这和数据类型是u16还是 u32没有关系吧。
li13158
5楼-- · 2019-07-21 17:46
是指buffer [ i ]

一周热门 更多>