OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3660|回复: 4

SPI AT45DB161D 的读写怎么换页啊,实现页与页之间连续的读写啊?

[复制链接]

14

主题

219

帖子

0

精华

高级会员

Rank: 4

积分
598
金钱
598
注册时间
2014-4-14
在线时间
76 小时
发表于 2016-10-7 18:42:18 | 显示全部楼层 |阅读模式
50金钱
最近在用STM32F107 调试AT45DB161D,SPI通信的,代码参考了《My_App 红牛开发板(STM32F103ZET6)读写AT45DB161D 串行Flash测试程序》,结果发现在进行读写测试时,地址累加到528时,读写就出错了,不懂这要怎么解决啊,求老司机带带我~~,下面是测试程序和调试结果。
[mw_shl_code=c,true]#include <string.h>
#include <stdlib.h>
#include "delay.h"
#include "stdio.h"
#include "usart1.h"
#include "at45db.h"

#define  FLASH_WriteAddress     0
#define  FLASH_ReadAddress      FLASH_WriteAddress
#define  FLASH_SectorToErase    FLASH_WriteAddress
#define  AT45DB161D_FLASH_ID    0x1F260000

vu32 FLASH_ID = 0;


void test(void)
{
        int len = 0;
        char Wbuf[500]="";
        char Rbuf[500]="";
        uint32_t addr = FLASH_WriteAddress;
        SPI_FLASH_PageErase(FLASH_SectorToErase);                    // 全部擦除
        delay_ms(10);

        while(1)
        {
                len = sprintf(Wbuf,"%d&",addr);
                printf("W:[0x%06X][%s]\t->",addr,Wbuf);
                SPI_FLASH_BufferWrite((uint8_t *)Wbuf, addr, len);
               
                memset(Rbuf,0,sizeof(Rbuf));
                SPI_FLASH_BufferRead((uint8_t *)Rbuf, addr, sizeof (Rbuf));
                printf("R:[%s]\r\n",Rbuf);
               
                if(strcmp(Rbuf, Wbuf) != 0) break;       
                addr++;
        }
}

int main(void)
{   
        delay_init();//延时函数初始化
        usart1_Configuration(115200);
        printf("\r\n------------------------------------\r\n");
       
        SPI_FLASH_Init();
        FLASH_ID = SPI_FLASH_ReadID();
        if (FLASH_ID == AT45DB161D_FLASH_ID){
                printf("校验OK.\r\n");
        }else {
                printf("校验Error.\r\n");
        }
        test();
        while (1) ;
}
[/mw_shl_code]
STM32F107 AT45DB161D.rar (6.9 MB, 下载次数: 163)
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

14

主题

219

帖子

0

精华

高级会员

Rank: 4

积分
598
金钱
598
注册时间
2014-4-14
在线时间
76 小时
 楼主| 发表于 2016-10-7 18:42:19 | 显示全部楼层
回复

使用道具 举报

14

主题

219

帖子

0

精华

高级会员

Rank: 4

积分
598
金钱
598
注册时间
2014-4-14
在线时间
76 小时
 楼主| 发表于 2016-10-8 11:16:41 | 显示全部楼层
求老司机带带我~~
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-10-8 18:37:51 | 显示全部楼层
好久以前用过,以前我毕业设计哪个MP3用的就是AT45DB161,去找来参考下吧。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

14

主题

219

帖子

0

精华

高级会员

Rank: 4

积分
598
金钱
598
注册时间
2014-4-14
在线时间
76 小时
 楼主| 发表于 2016-10-8 20:11:20 | 显示全部楼层
正点原子 发表于 2016-10-8 18:37
好久以前用过,以前我毕业设计哪个MP3用的就是AT45DB161,去找来参考下吧。

你给的线索太广了,怎么找。。。。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-24 01:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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