MSP430flash的块擦除

2019-07-25 13:41发布

void Seg_Erase(void){
     _DINT();
     WDTCTL = WDTPW + WDTHOLD;
     char *flase_erase;
     flase_erase = (char *)0x8000;                  //指向要檫写的段地址
     while(FCTL3&BUSY);
     FCTL3 = FWKEY;                                 //清除LOCK
     FCTL1 = FWKEY +ERASE;                         //段檫除
     *flase_erase = 0;                              //空写将0写为1
     FCTL3 = FWKEY + LOCK;                          //LOCK置1
     _EINT();
}
请问在进行FLASH段擦除的时候,调用这个函数是只擦除一个字节?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
jisyu_cy
1楼-- · 2019-07-26 15:13
flash的最小擦除单位是段(块只是段里面又分出来的一小块,每小块在64字节左右),要不就是整个flash,
spark周
2楼-- · 2019-07-26 19:07
 精彩回答 2  元偷偷看……
jiaxw
3楼-- · 2019-07-27 00:59
哦,明白了,多谢
李小川希比
4楼-- · 2019-07-27 05:11
学到了
李小川希比
5楼-- · 2019-07-27 07:26
请问擦除段是写首地址,还是这个段的任意一个地址?
zhangbo1985
6楼-- · 2019-07-27 11:16
这个段擦除的话不可能一次只擦出一个字节的。

一周热门 更多>