查看: 1120|回复: 0
打印 上一主题 下一主题

MSP430读写擦除FLASH程序

[复制链接]
跳转到指定楼层
沙发
发表于 2015-5-31 15:00:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//参数:wAddr为地址,范围0x1000~0xFFFF

void ReadFlash(U16 wAddr,U8 *bBuf,U8 bLen)
{
while (bLen--)
*bBuf++=*(U8 *)wAddr++;
return;
}
void WriteFlash(U16 wAddr,U8 *bBuf,U8 bLen)
{
U8 reg1,reg2;

reg1=_BIC_SR(GIE);
reg2=IE1;IE1=0;
while (bLen--) {
while (FCTL3&BUSY);
FCTL3 = FWKEY;
FCTL1 =FWKEY+WRT;
*(U8 *)wAddr++=*bBuf
while(FCTL3&BUSY);
FCTL1 = FWKEY;
FCTL3 = FWKEY+LOCK;
}
if(reg1&GIE) _BIS_SR(GIE);
IE1=reg2;

return;
}

void EraseSectorFlash(U16 wAddr)
{
U8 reg1,reg2;

reg1=_BIC_SR(GIE);
reg2=IE1;
IE1=0;
while(FCTL3&BUSY);
FCTL3 = FWKEY;
FCTL1 = FWKEY+ERASE;
*(U8 *)wAddr=0;
while(FCTL3&BUSY);
FCTL1 = FWKEY;
FCTL3 = FWKEY+LOCK;
if(reg1&GIE) _BIS_SR(GIE);
IE1=reg2;
return;
}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

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