智能车制作

 找回密码
 注册

扫一扫,访问微社区

12
返回列表 发新帖
楼主: yinhuipeng
打印 上一主题 下一主题

flash_init();函数问题,求大神指教

[复制链接]

30

主题

229

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2689
威望
1401
贡献
718
兑换币
877
注册时间
2014-7-1
在线时间
285 小时
11#
发表于 2016-3-1 12:17:29 | 只看该作者
yinhuipeng 发表于 2016-2-29 23:46
那应该没有成功写入吧,你试试写入固定值,看能不能读出来呗

我现在是掉电之后还是能保存之前我保存的值   但是程序烧进去不会擦除先前的值,显示的还是我之前保存的值
回复 支持 反对

使用道具 举报

30

主题

229

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2689
威望
1401
贡献
718
兑换币
877
注册时间
2014-7-1
在线时间
285 小时
12#
发表于 2016-3-1 19:13:33 | 只看该作者
yinhuipeng 发表于 2016-2-29 23:46
那应该没有成功写入吧,你试试写入固定值,看能不能读出来呗

/***FUNC+*********************************************************************/
/* Name   :  Flash_writeDATA16                                               */
/* Descrp : flash写入操作                                                    */
/* Input  : sectNo:目标扇区号 (K60N512实际使用0~255)                      */
/*          offset:写入扇区内部偏移地址(0~2043)                            */
/*          DATA :需要写入的数据                                             */
/*                                                                          */                                                   
/***FUNC-*********************************************************************/

U8 Flash_writeDATA8(U16 sectNo,U16 offset,U8 DATA)
{
    U32 destaddr;  
    union
    {
        U32   word;
        U8  byte4[4];
    } dest;
    union
    {
        U32   Data;
        U8  data[1];
    } dest1;       
     if(offset%4 != 0)
        return 1;   //参数设定错误,偏移量未对齐(4字节对齐)//此处提示警告,但是安全的……
    // 设置写入命令
    destaddr = (U32)(sectNo*(1<<11) + offset);//计算地址
    dest.word = destaddr;
    dest1.Data = DATA;
        // 设置目标地址
        FTFL_FCCOB0 = PGM4;
        FTFL_FCCOB1 = dest.byte4[2];
        FTFL_FCCOB2 = dest.byte4[1];
        FTFL_FCCOB3 = dest.byte4[0];

        // 拷贝数据
        {    //FTFL_FCCOB4 =dest1.data[3];
            // FTFL_FCCOB5 =dest1.data[2];
             FTFL_FCCOB7 =dest1.data[0];

        if(1 == Flash_cmd_launch())
            return 2;  //写入命令错误
        }
    return 0;  //成功执行
}
我这边只能看返回值  但是返回值总是错的  不知从哪里开始改?
zz = Flash_writeDATA8(255,0,123);  zz我的定义是9  在线读也一直是9 求指导

回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-28 21:56 , Processed in 0.035591 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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