|
本帖最后由 18252776113 于 2012-4-20 12:15 编辑
149中的flash操作,换了几个代码,始终不正确,真的不知道出了什么问题?请高手帮忙看看!小弟感激不尽。
void erase_flash(uint addr)
{
uchar *pf;
pf=(uchar *)addr;
FCTL1=FWKEY+ERASE;
FCTL3=FWKEY;
*pf=0;
while(FCTL3&BUSY);
FCTL3=FWKEY+LOCK;
}
void wr_flash(uint addr,uchar dat)
{
uchar *pf;
pf=(uchar *)addr;
FCTL3=FWKEY;
FCTL1=FWKEY+WRT;
while(FCTL3&BUSY);
*pf=dat;
FCTL1=FWKEY;
FCTL3=FWKEY+LOCK;
}
uchar rd_flash(uint addr)
{
uchar *pf=(uchar *)addr;
return *pf;
}
void main()
{
FCTL2=FWKEY+FSSEL_1+FN3+FN4; //MCLK作为的时钟
//erase_flash(0x1080); //信息flash segmentA
//wr_flash(0x1080,8); //不注销操作 lcd就能正常显示8
str[0]=rd_flash(0x1080)+1; //注销以上两个操作,始终读出 -1 ,+1后lcd显示0
lcd_disp_sz_16_str(0,0,str); //也就是说 掉电未保持 请问这是什么问题?上面擦除 写入 读出函数是否存在很大问题?
while(1);
}
SF_BSL430下载软件上 的“保护信息flash”是什么意思?和上面问题有关联吗? |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|