硬汉嵌入式论坛

 找回密码
 立即注册
查看: 7063|回复: 11
收起左侧

[有问必答] 关于nor flash    NOR_WriteBuffer的读写 ?

[复制链接]

680

主题

3480

回帖

5545

积分

论坛元老

积分
5545
发表于 2015-4-16 10:19:45 | 显示全部楼层 |阅读模式
最近在研究nor flash 的读写,

在扇区127号处,先执行扇区擦除后,

写入一个64字节的数据,再读出来,
发现前32字节数据正确,而后32字节全部为0,
写入函数使用 NOR_WriteBuffer 这个,

请问怎么后32个字节怎么会是0啊 ??
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115694
QQ
发表于 2015-4-16 10:29:25 | 显示全部楼层
读取用的那个函数。使用那个驱动代码。
回复

使用道具 举报

680

主题

3480

回帖

5545

积分

论坛元老

积分
5545
 楼主| 发表于 2015-4-16 10:44:14 | 显示全部楼层

回 eric2013 的帖子

eric2013:读取用的那个函数。使用那个驱动代码。 (2015-04-16 10:29) 
读取函数使用  NOR_ReadBuffer(_spidat, uiAddress, 64);   这个
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115694
QQ
发表于 2015-4-16 10:52:08 | 显示全部楼层

回 hpdell 的帖子

hpdell:读取函数使用  NOR_ReadBuffer(_spidat, uiAddress, 64);   这个 (2015-04-16 10:44) 
V5板子里面的驱动代码吗
回复

使用道具 举报

680

主题

3480

回帖

5545

积分

论坛元老

积分
5545
 楼主| 发表于 2015-4-16 11:14:39 | 显示全部楼层

回 eric2013 的帖子

eric2013:V5板子里面的驱动代码吗 (2015-04-16 10:52) 
是的
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115694
QQ
发表于 2015-4-16 11:46:50 | 显示全部楼层

回 hpdell 的帖子

hpdell:是的 (2015-04-16 11:14) 
工程传上来,基于V5板子的,我试试。
回复

使用道具 举报

680

主题

3480

回帖

5545

积分

论坛元老

积分
5545
 楼主| 发表于 2015-4-16 12:16:14 | 显示全部楼层

回 eric2013 的帖子

eric2013:

工程传上来,基于V5板子的,我试试。

我是从spi的芯片里面读取数据再写入到nor flash里面,从spi里面读出的数据是对的

void W25Qxx_FastReadBytes_WriteToNorFlash(void)
{
        // 16*16的汉字库,带符号,16*16/8*8178
        u32 ReadAddr = 2 * 4096uL;   // 2 表示在spi flash 里面的起始扇区
        uint32_t uiAddress;
        u8 spidat[64] = {0};                        //读出64 Byte 数据
        u8 _spidat[64] = {0};
        u16 i;
        u16  databyte0;

        for(i=126; i<=127; i++)
        {
                NOR_EraseSector(i * NOR_SECTOR_SIZE);                        //擦除扇区,每扇区128KByte
                printf("\\r\\nNOR Flash Erase Sector = %d", i);
        }

        databyte0 = ((16*16/8*8178)/64);    //计算for 循环次数
        printf("\\r\\n开始向NOR Flash 写入数据,请等待... ...");
        bsp_DelayMS(1000);        
        // 每次读取64字节后再写入到NOR Flash里面,
        for(i=0;i<databyte0;i++)               
        {
                W25Q128_FastReadBytes(SPI1, ReadAddr+(i*64), spidat, 64);    //从spi的flash里面读取64字节
                uiAddress = (126 * NOR_SECTOR_SIZE) + (64 * i);                //126 是需要写入 nor flash 的扇区号,最大0-127,每扇区128KByte
                NOR_WriteBuffer(spidat, uiAddress, 64);                        //此函数不能够跨页写,一次最大只能写入64字节
        }
        bsp_DelayMS(1000);        
        //======================================================================================================
        //读取数据对比,前32字节正确,后32字节全部为0
        i --;
        uiAddress = (126 * NOR_SECTOR_SIZE) + (64 * i);
        NOR_ReadBuffer(_spidat, uiAddress, 64);
        for(i=0;i<64;i++)
        {
                printf("%02x", _spidat);    //发送给pc机显示
        }
}
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115694
QQ
发表于 2015-4-16 12:51:43 | 显示全部楼层
看你的代码也没啥问题,刚想起来v5板子不是有个NOR FLASH里面吗,测试代码做的很全面了,你研究下,在裸机例子高级篇里面。
回复

使用道具 举报

680

主题

3480

回帖

5545

积分

论坛元老

积分
5545
 楼主| 发表于 2015-4-16 13:56:49 | 显示全部楼层

回 eric2013 的帖子

eric2013:看你的代码也没啥问题,刚想起来v5板子不是有个NOR FLASH里面吗,测试代码做的很全面了,你研究下,在裸机例子高级篇里面。 (2015-04-16 12:51) 
好的,我再研究研究几下
回复

使用道具 举报

680

主题

3480

回帖

5545

积分

论坛元老

积分
5545
 楼主| 发表于 2015-4-17 08:57:49 | 显示全部楼层

回 eric2013 的帖子

eric2013:看你的代码也没啥问题,刚想起来v5板子不是有个NOR FLASH里面吗,测试代码做的很全面了,你研究下,在裸机例子高级篇里面。 (2015-04-16 12:51) 
已经搞定了,吧 NOR_ReadBuffer 这个读取函数改一下就可以了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115694
QQ
发表于 2015-4-17 08:59:42 | 显示全部楼层

回 hpdell 的帖子

hpdell:已经搞定了,吧 NOR_ReadBuffer 这个读取函数改一下就可以了 (2015-04-17 08:57) 
[s:151]
回复

使用道具 举报

680

主题

3480

回帖

5545

积分

论坛元老

积分
5545
 楼主| 发表于 2015-4-17 11:38:59 | 显示全部楼层

回 eric2013 的帖子

eric2013:[s:151] (2015-04-17 08:59) 
多谢多谢啊,还得好好跟你学习学习啊,我会的只是写皮毛哦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-12 20:57 , Processed in 0.269900 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表