MSP430中的Flash操作问题?

2019-03-24 14:07发布

void FlashErase()
{

uchar *p0;

FCTL2 = FWKEY + FSSEL_1 + FN3 + FN4;//选择时钟源,分频

FCTL3 = FWKEY;//清除LOCK

while(FCTL3 & BUSY);//如果出于忙,则等待

FCTL1 = FWKEY + ERASE;//使能段操作

p0 = (unsigned char *)0x1080;//数值强制转换成指针

*p0 = 0; //向段内任意地址写0,即空写入,启动擦除操作

FCTL1 = FWKEY;

FCTL3 = FWKEY + LOCK;

while(FCTL3 & BUSY);

}
所有的资料上都说擦除最小单位是一段,并且擦除后是置1的。而我执行这段擦除代码,结果在memory窗口中观察,只有一个地址0x1080是被擦除了的,并且不是置1,而是变成了0,不理解。求各位帮我解决啊 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
tyrone2497
2019-03-25 05:17
之前我是用软甲仿真的。我这次把板子连上去试了一下,然后用memory窗口观察,这次发现了每次擦除之后所有的这段的地址都是变成了FF,就是都变成了1。还有不明白的就是为什么我用软件仿真的时候就是我之前说的那种情况呢?

一周热门 更多>

相关问题

    相关文章