Quantcast
Channel: MSP 低功耗微控制器论坛 - 最近的话题
Viewing all articles
Browse latest Browse all 3634

关于MSP430G2452操作flash读写的问题

$
0
0

项目里有些信息需要实现掉电不丢数据,所以我把一些数据放入了flash中,但是发现重新上电后数据并没有存入,我的读写flash的代码如下,读写的起始地址是0x1040

#define SegmentStart 0x1040 //0x01080 //Segment = 0x01000~0x010FF

void FlashWriteChar(unsigned int addr, char Data);
char FlashReadChar(unsigned int Addr);

void FlashWriteChar(unsigned int addr, char Data)
{
    char *FlashPtr = (char *)addr; // Segment  pointer
    FCTL3 = FWKEY;              // Clear Lock bit
    FCTL1 = FWKEY + ERASE;      // Set Erase bit
    *FlashPtr = 0;             // Dummy write to erase Flash seg
    //_DINT();
    *FlashPtr = Data; // Save Data
    //_EINT();
    FCTL1 = FWKEY;        // Clear WRT bit
    FCTL3 = FWKEY + LOCK; // Set LOCK bit
}

char FlashReadChar(unsigned int Addr)
{
    char Data;
    char *FlashPtr = (char *)Addr;
    Data = *FlashPtr;
    return (Data);
}

mian函数中部分初始化代码如下:

void main( void )
{
   WDTCTL = WDTPW + WDTHOLD;
   FCTL2 = FWKEY + FSSEL0 + FN1; // MCLK/3 for Flash Timing Generator


Viewing all articles
Browse latest Browse all 3634

Trending Articles