智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 11467|回复: 5
打印 上一主题 下一主题

勇哥,你怎么看

[复制链接]

27

主题

150

帖子

0

精华

会长

Rank: 8Rank: 8

积分
3077

优秀会员奖章活跃会员奖章

威望
1484
贡献
901
兑换币
931
注册时间
2013-6-7
在线时间
346 小时
毕业学校
燕山大学
跳转到指定楼层
1#
发表于 2014-6-5 02:06:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
开发出来了
回复

使用道具 举报

27

主题

150

帖子

0

精华

会长

Rank: 8Rank: 8

积分
3077

优秀会员奖章活跃会员奖章

威望
1484
贡献
901
兑换币
931
注册时间
2013-6-7
在线时间
346 小时
毕业学校
燕山大学
2#
 楼主| 发表于 2014-6-5 02:07:27 | 只看该作者

#ifndef FLASH_H_
#define FLASH_H_
#include "support_common.h"
#define FLASH_PAGESIZE 4096
#define FLASH_PROG_OFFSET 0x44000000//地址偏移量

#define FLASH_PROGRAM 0x20  //写入命令
#define FLASH_PAGE_ERASE 0x40//页擦除命令

void FlashPageErase(uint8 page);//擦除指定的页
void FlashPageWrite(uint8 page,uint16 pstart,uint32 N);//写flash
uint32  FlashRead(uint8 page,uint16 pstart);//读flash

#endif












#include"flash.h"
void FlashPageErase(uint8 page)//page为要擦除的页(0=<page<=127),选第127页
{
         uint32*address;
         uint8 sector;
         address=(uint32*)(page*FLASH_PAGESIZE+FLASH_PROG_OFFSET);//1.算出页首地址
        sector=page/4;//对应的扇区
        
         MCF_CFM_CFMPROT&=~MCF_CFM_CFMPROT_PROTECT(sector);//2.解除对页所在扇区的保护
        
         MCF_CFM_CFMCLKD=MCF_CFM_CFMCLKD_DIV(30)
                        |MCF_CFM_CFMCLKD_PRDIV8;//3,设置flash的工作频率为161.3khz
                        
         while(!(MCF_CFM_CFMUSTAT&MCF_CFM_CFMUSTAT_CBEIF));//4等待命令缓冲区空
        
            MCF_CFM_CFMUSTAT|=MCF_CFM_CFMUSTAT_PVIOL;//清侵害保护标志位
        MCF_CFM_CFMUSTAT|=MCF_CFM_CFMUSTAT_ACCERR;//清访问出错标志位
         
     *address=0x0;//5向擦除页内任意地址写任意值,以定位要擦除的的页
   
     MCF_CFM_CFMCMD=MCF_CFM_CFMCMD_CMD(FLASH_PAGE_ERASE);//6页擦除命令
    MCF_CFM_CFMUSTAT|=MCF_CFM_CFMUSTAT_CBEIF;//7,启动命令执行
   
     while(!(MCF_CFM_CFMUSTAT&MCF_CFM_CFMUSTAT_CCIF));//8等待命令执行完成
                       
}
void FlashPageWrite(uint8 page,uint16 pstart,uint32 N)//page是页号,pstart是该页中的字号(0=<page<=127),(0=<pstart<=1023)
{
         uint32*address;
         uint8 sector;
         address=(uint32*)(page*FLASH_PAGESIZE+pstart*4+FLASH_PROG_OFFSET);//1.算出字首地址
        sector=page/4;//对应的扇区
        
         MCF_CFM_CFMPROT&=~MCF_CFM_CFMPROT_PROTECT(sector);//2.解除对页所在扇区的保护
        
     MCF_CFM_CFMCLKD=MCF_CFM_CFMCLKD_DIV(30)
                        |MCF_CFM_CFMCLKD_PRDIV8;//3,设置flash的工作频率为161.3khz
                        
     while(!(MCF_CFM_CFMUSTAT&MCF_CFM_CFMUSTAT_CBEIF));//4等待命令缓冲区空
   
         MCF_CFM_CFMUSTAT|=MCF_CFM_CFMUSTAT_PVIOL;//清侵害保护标志位
        MCF_CFM_CFMUSTAT|=MCF_CFM_CFMUSTAT_ACCERR;//清访问出错标志位
        
         *address=N;//5写入数据
        
         MCF_CFM_CFMCMD=MCF_CFM_CFMCMD_CMD(FLASH_PROGRAM);//6写入命令
        MCF_CFM_CFMUSTAT|=MCF_CFM_CFMUSTAT_CBEIF;//7,启动命令执行
        
     while(!(MCF_CFM_CFMUSTAT&MCF_CFM_CFMUSTAT_CCIF));//8等待命令执行完成
   
     MCF_CFM_CFMPROT|=MCF_CFM_CFMPROT_PROTECT(sector);//9.给所在页加保护
        
         
}
uint32  FlashRead(uint8 page,uint16 pstart)//page是页号,pstart是该页中的字号
{
         uint32*address;
         uint32 n;
         address=(uint32*)(page*FLASH_PAGESIZE+pstart*4);//1.算出字首地址
        n=*address;
         return n;
}

回复 支持 反对

使用道具 举报

17

主题

306

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2447
威望
985
贡献
750
兑换币
660
注册时间
2014-2-21
在线时间
356 小时
3#
发表于 2014-6-5 07:40:37 | 只看该作者
点个赞
回复 支持 反对

使用道具 举报

8

主题

66

帖子

0

精华

高级会员

Rank: 4

积分
880
威望
395
贡献
227
兑换币
248
注册时间
2013-7-17
在线时间
129 小时
4#
发表于 2014-6-5 09:04:59 | 只看该作者
哈哈哈
回复 支持 反对

使用道具 举报

8

主题

54

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1064
威望
555
贡献
331
兑换币
357
注册时间
2013-7-22
在线时间
89 小时
5#
发表于 2014-6-6 21:05:46 | 只看该作者
顶一下
回复 支持 反对

使用道具 举报

3

主题

37

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1005
威望
529
贡献
310
兑换币
335
注册时间
2014-9-3
在线时间
83 小时
毕业学校
燕山大学
6#
发表于 2015-8-21 17:20:50 | 只看该作者
我用快播看
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 12:56 , Processed in 0.066236 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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