请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:MSP430G2553 工具/软件:Code Composer Studio
大家好,
我有以下代码:
#include <msp430g2553.h>
#define end_of_flash 0x0FFFF
void WriteToFlash(LON* Flashptr,Long val);
void ReadFromFlash(LON* address, Long* val);
int main(void){
WDTCTL = WDTPW + WDTHOLD;
BCSCTL1 = CALCBC1_1MHz; //将DCO设置为1MHz
DCOCTL = CALDCO_1MHz;
FCTL2 = FWKEY + FSSEL0 + FN1;
WriteToFlash ((长*) 0xFFF01234567);
长val;
ReadFromFlash ((长*) 0xFFF0, &val);
返回0;
}
void WriteToFlash (长*地址,长val)
{
长* flash_ptr;
flash_ptr =地址; //初始化闪存指针
FCTL1 = FWKEY +擦除; //设置擦除位
FCTL3 = FWKEY; //清除锁定位
*FLASH_PTR = 0;
FCTL1 = FWKEY + WRT;
*FLASH_PTR = val;
FCTL1 = FWKEY; //清除WRT位
FCTL3 = FWKEY + LOCK; // set lock bit
}
void ReadFromFlash(Long* address, Long* val)
{
Long* flash_ptr;
flash_ptr =地址;
*val =*flash_ptr;
}
在闪存中插入123.4567万,我可以读取此代码,但当我注释WriteToFlash并尝试再次运行它时,我希望读取相同的值,但值错误。
我缺少什么?
感谢你的帮助