MSP430读写擦除FLASH程序

[复制链接]
2261|5
 楼主| msp430ing 发表于 2011-4-30 17:39 | 显示全部楼层 |阅读模式
//参数: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;
}
3B1105 发表于 2011-4-30 17:52 | 显示全部楼层
看不懂啊!
bit6019 发表于 2011-4-30 18:58 | 显示全部楼层
好复杂啊!
小z 发表于 2011-5-4 17:11 | 显示全部楼层
这是小flash吧,都不分block/page什么的,
maoyanketi 发表于 2011-5-8 09:58 | 显示全部楼层
楼主这个程序是好的吗?
huzixian 发表于 2011-5-9 10:24 | 显示全部楼层
msp430想外扩flash怎么办?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

730

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部