//按字写
void Flash_write_word(int *pData, int nValue)
{
FCTL3 = 0xA500; //LOCK=0
FCTL1 = 0xA540; //WRT = 1
*pData = nValue;
}
//按字节写
void Flash_write_byte(int *pData, char nValue)
{
FCTL3 = 0xA500; //LOCK=0
FCTL1 = 0xA540; //WRT = 1
*pData = nValue;
}
//擦除
void Flash_clr(int *pData)
{
FCTL1 = 0xA502; //ERASE=1
FCTL3 = 0xA500; //LOCK=0
*pData = 0;
}
//读操作是Flash模块缺省模式
#define FSData 0xef00 //假设数据存放在0xef00
...
int *pFlash;
int datarestore;
...
pFlash = (int *)(FSData); //指向目标
datarestore = *pFlash; //得到0xef00处数据
...
|