2651|11

8

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

MSP430F6638flash存储区的问题 [复制链接]

 

MSP430F6638flash主存储器可以存放除程序之外的其他数据吗?数据大小大概5KB?

最新回复

代码呢?   详情 回复 发表于 2019-6-24 18:14
 
点赞 关注

回复
举报

6040

帖子

205

TA的资源

版主

沙发
 

看手册是可以的,可以通过程序来对flash编程,数据大小也不成问题,不过我没这么用过。

遇到问题,要学会自己解决: http://www.ti.com/product/MSP430F6638

 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
lcofjp 发表于 2019-6-21 21:52 看手册是可以的,可以通过程序来对flash编程,数据大小也不成问题,不过我没这么用过。 遇到问题,要学 ...

现在我知道flash主存储器能存放程序,但不确定他是否能存放其他数据?一般保存数据都在信息信息存储器中,但现在我们保存的数据大于信息存储器的空间?所以确认一下主存储器能存放数据吗?

点评

我把你当小白,继续回复你一下(因为我在上面已经回复你了) 能否存放其他数据?可以,你那点数据完全不成问题 然后呢?得到一个可以不可以的答案就完事了?   我在告诉你一遍这个问题的正确解决办法  详情 回复 发表于 2019-6-22 21:20
 
 
 

回复

6040

帖子

205

TA的资源

版主

4
 
落笔 发表于 2019-6-22 18:49 现在我知道flash主存储器能存放程序,但不确定他是否能存放其他数据?一般保存数据都在信息信息存储器中 ...

我把你当小白,继续回复你一下(因为我在上面已经回复你了)

能否存放其他数据?可以,你那点数据完全不成问题

然后呢?得到一个可以不可以的答案就完事了?

 

我在告诉你一遍这个问题的正确解决办法,去官网看datasheet,6.9小节,已经给出了全部答案

 

 
 
 

回复

2618

帖子

0

TA的资源

纯净的硅(高级)

5
 

是啊,看手册吧。

 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

6
 
lcofjp 发表于 2019-6-22 21:20 我把你当小白,继续回复你一下(因为我在上面已经回复你了) 能否存放其他数据?可以,你那点数据完全不 ...

好的 谢谢

 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

7
 
alan000345 发表于 2019-6-24 05:27 是啊,看手册吧。

好的

 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

8
 
lcofjp 发表于 2019-6-22 21:20 我把你当小白,继续回复你一下(因为我在上面已经回复你了) 能否存放其他数据?可以,你那点数据完全不 ...

在您的建议下我看手册了,再次厚着脸皮求助于您?我往信息存储器中写数据可以按我设定的地址中写,但是我往主存储器中写数据时,我设置的起始地址时bank3的首地址038000H,为啥调试的时候显示的写在了08000H为首地址的区中呢?

点评

代码呢?  详情 回复 发表于 2019-6-24 18:14
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

9
 
alan000345 发表于 2019-6-24 05:27 是啊,看手册吧。

在您的建议下我看手册了,但我又遇到新的问题,希望得到您的帮助?我往信息存储器中写数据可以按我设定的地址中写,但是我往主存储器中写数据时,我设置的起始地址时bank3的首地址038000H,为啥调试的时候显示的写在了08000H为首地址的区中呢?

 
 
 

回复

6040

帖子

205

TA的资源

版主

10
 
落笔 发表于 2019-6-24 13:37 在您的建议下我看手册了,再次厚着脸皮求助于您?我往信息存储器中写数据可以按我设定的地址中写,但是我 ...

代码呢?

点评

uchar *ADR = (uchar *)0x38000;//宏定义写入Flash的起始地址,位于bank3 //定义一个结构体 typedef struct  { uint year; uint monte; uint day; uint hour; uint minute; uint tube_num; uint lock  详情 回复 发表于 2019-6-24 20:56
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

11
 
本帖最后由 落笔 于 2019-6-24 21:15 编辑

uchar *ADR = (uchar *)0x38000;//宏定义写入Flash的起始地址,位于bank3
//定义一个结构体
typedef struct 
{
uint year;
uint monte;
uint day;
uint hour;
uint minute;
uint tube_num;
uint lock_force;
}Flash_seg;

/*************************** 擦除FLASH ***************************/
void FlashErase(uchar *address)
{
FCTL3 = FWKEY;
while(FCTL3 & BUSY);
FCTL1 = FWKEY + ERASE;
*((uchar *)address) = 0;//将对应地址上的双字节数据擦除
FCTL1 = FWKEY;
FCTL3 = FWKEY + LOCK;
while(FCTL3 & BUSY);
}

/*************************** 按字节写FLASH ***************************/
void FlashWrite(uchar *address,Flash_seg *word,uint count)
{
FCTL3 = FWKEY;
while(FCTL3 & BUSY);
FCTL1 = FWKEY + WRT;
uint temp = 0;
for (uint i = 0;i < count;i++)
{
memcpy(&temp,((uchar *)(word))+i,1); 
address = temp;
}
FCTL1 = FWKEY;
FCTL3 = FWKEY + LOCK;
while(FCTL3 & BUSY);
}

int main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
lcd_init();
Flash_seg p;
p.year = 2019;
p.monte = 06;
p.day = 24;
p.hour = 10;
p.minute = 25;
p.tube_num = 01;
p.lock_force = 13;
uint count = sizeof( Flash_seg);
Flash_seg *q = &p;
show_int((*q).year);
LCD_CLEAR();
FlashErase(ADR);
for(uint i = 0;i < 128;i+= 14) //存128个字节的结构体中的数据
{
FlashWrite(ADR+ i,q,count);
}
}
 

 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

12
 

问题已解决,谢谢各位的帮助

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表