基于W25Q128的SPI实验例程发现严重问题。数据问题。地址问题。

2019-07-20 16:00发布

在测试F4的SPI(W25Q128) 实验的时候遇上了点麻烦。
我有两个问题,

①为什么FLASH_SIZE=128*1024*1024;,不应该是FLASH_SIZE=16*1024*1024;么?
②经过测试,我试了两种数据量,当1083个字节时完全没有问题,可是传输量到达1571的时候出问题,写不进去(不提示W25Q128 Write Finished!),当然这两个数字不是固定的,应该是超过了某一个临界值导致这个问题。然后我打开以前F1的例程,发现区别在于W25QXX_Write函数,F1下没有定义新的U8*,如下图:
因为F1的例程只有4096的数组,然后我就尝试F4的例程也就是上面例程的U8*去掉直接用4096的数组作为地址。然后一切正常。
测试过程中出现了问题,我就用printf打印如下:

第一个prinf正常,第二个无语了,是一个负的很大很大的数,完全超过了65535,我知道这里就完全超出了我的知识范围,请大神赐教。我觉得这是个很严重的问题,根本上制约了向W25Q128里写大容量数据。
解决了上面的问题后我尝试些3141个数据,完全写不进去。

printf根本不执行。但是测试W25QXX_Read可以执行到最后一行。缩小数据量就可以。
我觉得还是请原子哥重新测试一下这个程序的大数据量传输吧。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
hh406
1楼-- · 2019-07-21 10:38
我想问一下为什么不是128*1024*1024?
hh406
2楼-- · 2019-07-21 15:08
 精彩回答 2  元偷偷看……
yzhanghe
3楼-- · 2019-07-21 17:50
 精彩回答 2  元偷偷看……
hh406
4楼-- · 2019-07-21 23:50
回复【10楼】yzhanghe:
---------------------------------
谢谢,呵呵
370251047
5楼-- · 2019-07-22 02:02
正点原子 发表于 2015-4-5 12:02
回复【2楼】Austin:
---------------------------------
这里有误,确实应该是16*1024*1024才对。

那怎么从最后100Byte写入数据,还能够写进去,而且读出来的数据居然和写进去的数据一致
liyuanxh
6楼-- · 2019-07-22 02:48
370251047 发表于 2016-10-4 14:06
那怎么从最后100Byte写入数据,还能够写进去,而且读出来的数据居然和写进去的数据一致

我也比较好奇为啥FLASH_SIZE为128*1024*1024时,FLASH_SIZE-100的地址不是超出W25Q128的范围了么,为啥正常正常呢?

一周热门 更多>