找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3029|回复: 3
打印 上一主题 下一主题
收起左侧

求救MSP430F169的flash的读写程序

[复制链接]
跳转到指定楼层
楼主
ID:75794 发表于 2015-3-31 15:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MSP430F169的flash的读写程序如下


void Flash_clr(int *ptr)
{
while ((FCTL3 & BUSY)!=0){};//先判忙
FCTL3 = FWKEY;             //Lock = 0  ,FCTL3 =0X0A500
FCTL1 = FWKEY+ERASE;              //Erase = 1 ,FCTL1 = 0X0A502
*ptr = 0;          /* Erase flash segment */
  //_EINT();  //因为擦除时间较长,为不影响主程序时钟中断
while ((FCTL3 & BUSY)!=0);
}
void Flash_wb(char*dataptr,char byte)
{
FCTL3 = FWKEY;             //Lock = 0  ,FCTL3 =0X0A500
FCTL1 = FWKEY+WRT;             // WRT = 1 ,FCTL1 = 0X0A540
*dataptr=byte;               //字节写入
}
请问下高手红色字体的字母表示什么?在线等~

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:75794 发表于 2015-3-31 16:29 | 只看该作者
自查到 谢啦 大家~
回复

使用道具 举报

板凳
ID:1 发表于 2015-3-31 17:24 来自手机 | 只看该作者
红色字母的意思分享一下吗。
回复

使用道具 举报

地板
ID:66032 发表于 2015-4-1 17:56 | 只看该作者
Flash Memory 控制寄存器3的Lock 位的清零,Flash Memory 控制寄存器1的擦出位置位将本单独指定的Segment擦出, 楼主写的顺序写反了, 通常的顺序是下面这样的, 对SegmentA先擦出后写;
void write_SegA (uchar value)
{
  char *Flash_ptr;                          // Flash Memory的地址指针
  unsigned int i;

  Flash_ptr = (char *) 0x1080;              // 初始化地址指针;
  FCTL1 = FWKEY + ERASE;                    // 将擦出位置位;
  FCTL3 = FWKEY;                            // 清零Lock位;
  *Flash_ptr = 0;                           // 写0 到这个Segment的所有内存;

  FCTL1 = FWKEY + WRT;                      // 将写操作置位;

  for (i=0; i<128; i++)
  {
    *Flash_ptr++ = value;                   // 写某一值到这个flash,一直到这个数据写完所有的地址单元为止,指针地址自动加1;
  }

  FCTL1 = FWKEY;                            // 清零写位, Disable 写使能;
  FCTL3 = FWKEY + LOCK;                     // 上锁;
}

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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