你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
若是读取复位时(一直有电)的值可能还有意义,可以定义系统复位时不初始化某部分区域的值,当发生复位时这部分的值不会发生改变,还保存着复位前的值,这时可以读取到复位前的值,一旦发生断电,这部分值不会保存,各家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++;
}
评分
查看全部评分
评分
查看全部评分