你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
如何读出单片机上电时的RAM值?
[复制链接]
帅到没朋友
提问时间:2017-1-25 18:19 /
如题,如何读出单片机上电时的RAM值?
赞
0
收藏
2
评论
27
分享
发布时间:2017-1-25 18:19
举报
请先
登录
后回答问题
27个回答
中山无雪
回答时间:2017-2-20 13:36:18
a0a.1 32b0c
上电时RAM都是 MCU初始化的值,读取它有何意义???
若是读取复位时(一直有电)的值可能还有意义,可以定义系统复位时不初始化某部分区域的值,当发生复位时这部分的值不会发生改变,还保存着复位前的值,这时可以读取到复位前的值,一旦发生断电,这部分值不会保存,各家MCU初始化的值可能不一样,再读取就没有意义了
点评
队长shiwo
有点道理
发表于 2017-2-20 14:48
评分
参与人数
1
ST金币
+2
收起
理由
zero99
+ 2
查看全部评分
赞
1
评论
回复
支持
1
反对
0
无薪税绵
回答时间:2017-2-20 10:04:57
a0a.1 32b0c
可以做一个循环,从00一真读到128。
unsigned char data d1 _at_ 0x00;
void main(void)
{
unsigned char *p;
unsigned char i;
unsigned char out=0;
p=&d1;
for(i=0;i<128;i++)
{
out=*p++;
}
}
评分
参与人数
1
ST金币
+2
收起
理由
zero99
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
JeffJiang
回答时间:2017-2-20 09:17:36
a0a.1 32b0c
不清楚你是想读什么样的数据,是读初始化之后的数据呢,还是特定读某一个数据?
评分
参与人数
1
ST金币
+2
收起
理由
zero99
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
MrJiu
回答时间:2017-2-20 09:30:32
a0a.1 32b0c
如果知道直接地址,可以直接用地址读取.....如果说想知道某个变量的地址,这个嘛....你都知道变量名字了,还要地址干嘛!!!!
评分
参与人数
1
ST金币
+2
收起
理由
zero99
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
小小超
回答时间:2017-2-20 09:52:32
a0a.1 32b0c
RAM一般保存是变量吧,而这个变量是初始化时定义的,既然是定义了,为什么还要读取出来??不明白楼主想干啥
评分
参与人数
1
ST金币
+2
收起
理由
zero99
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
队长shiwo
回答时间:2017-2-20 10:10:25
a0a.1 32b0c
上电时的RAM值,表示不懂,期待大神解答 学习
赞
0
评论
回复
支持
反对
Stm32McuLover
回答时间:2017-2-20 10:42:56
a1024a.1 32b0c
帮顶。。。。
赞
0
评论
回复
支持
反对
feiante
回答时间:2017-2-20 11:09:26
a0a.1 32b0c
赞
0
评论
回复
支持
反对
ddllxxrr
回答时间:2017-2-20 11:20:38
a0a.1 32b0c
RAM 只是临时的一些数,况怎么分布还不知道,楼主读这些有意义么????
赞
0
评论
回复
支持
反对
yb0121
回答时间:2017-2-20 11:43:48
a0a.1 32b0c
直接用地址读取
赞
0
评论
回复
支持
反对
七哥
回答时间:2017-2-20 12:29:46
a0a.1 32b0c
直接定义个RAM变量指针,指针即为RAM的地址,直接读就可以。
如:
#define START_ADDR 0x0
#define RANG_ADDR 256
unsigned int *p;
unsigned int i,temp;
for (i=0;i<RANG_ADDR;i++)
{
temp = *p; //temp即为当前ram数据
p++;
}
评分
参与人数
1
ST金币
+2
收起
理由
zero99
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
cos12a-21701
回答时间:2017-2-20 12:37:35
a1024a.1 32b0c
帮顶一个.
赞
0
评论
回复
支持
反对
zbber
回答时间:2017-2-20 14:09:49
a0a.1 32b0c
可以做一个循环,从00一真读到128
评分
参与人数
1
ST金币
+2
收起
理由
zero99
+ 2
赞一个!
查看全部评分
赞
0
评论
回复
支持
反对
johnson_gong
回答时间:2017-2-20 15:25:01
a0a.1 32b0c
楼上几位说的很有道理
赞
0
评论
回复
支持
反对
1
2
/ 2 页
下一页
所属标签
相似问题
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
若是读取复位时(一直有电)的值可能还有意义,可以定义系统复位时不初始化某部分区域的值,当发生复位时这部分的值不会发生改变,还保存着复位前的值,这时可以读取到复位前的值,一旦发生断电,这部分值不会保存,各家MCU初始化的值可能不一样,再读取就没有意义了
点评
评分
查看全部评分
unsigned char data d1 _at_ 0x00;
void main(void)
{
unsigned char *p;
unsigned char i;
unsigned char out=0;
p=&d1;
for(i=0;i<128;i++)
{
out=*p++;
}
}
评分
查看全部评分
评分
查看全部评分
评分
查看全部评分
评分
查看全部评分
如:
#define START_ADDR 0x0
#define RANG_ADDR 256
unsigned int *p;
unsigned int i,temp;
for (i=0;i<RANG_ADDR;i++)
{
temp = *p; //temp即为当前ram数据
p++;
}
评分
查看全部评分
评分
查看全部评分