FLASH块写入

#include "msp430x44x.h"
unsigned char  value[128];
void Block_write(unsigned char *value);
void main( void )
{
  unsigned char count;
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  FCTL2 = FWKEY + FSSEL0 + FN0;
  //value = 0;
  for(count=0;count<128;count ++)
  {
    value[count]=count;
  }
  while(1)
  {
    Block_write(value);
  }
}

void Block_write(unsigned char *value)
{
  unsigned char *Flash_ptr=(unsigned char *)0x1080;                // Flash pointer
  unsigned char i,j,k=0;
  FCTL1 = FWKEY + WRT + BLKWRT;
  FCTL3 = FWKEY;//清除锁定
  _DINT();//Flash期间不允许中断,否则将出现不可预料的错误
  for(j=0;j<2;j++)//由于infoA段大小事128字节,包含两个块(64字节一个块),所以分两次写入
  {
    for(i=0;i<64;i++)
    {
 //     *(Flash_ptr++)= value[k++];
      *(Flash_ptr++)= value[k++];
      while(FCTL3&WAIT);//等待字节写操作完成
    }
    while(FCTL3 & BUSY);
  }
  _EINT();
  FCTL1 = FWKEY;  //Flash退出写操作
  FCTL3 = FWKEY +LOCK; //恢复Flash锁定。
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值