你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F103RC变量初始化问题

[复制链接]
yangwei1840 提问时间:2020-11-23 14:00 /
定义长度为7的短整型数组:u16 ArryTest[7];
再定义一个短整形变量 u16 Test0 = 0;
编译后,如果Test0的地址被编译到数组ArryTest[7]的下一个地址,则Test0变量的值一直是0x03,并且无法被初始化其他值。
例如:ArryTest[7]的地址为0x20000200,Test0 的地址为0x2000020e,则Test0 的值无法被修改,一直为0x03.
有哪位朋友遇到过这样的问题没有?
收藏 1 评论9 发布时间:2020-11-23 14:00

举报

9个回答
wenyangzeng 回答时间:2020-11-23 15:06:39
可能是数组定义后没有初始化,而变量先于数组初始化了所引起的。这个变量在RAM的位置当然不在数组后面哦!
建议定义数组后马上初始化看看:
u16 ArayTest[7]={0x0000,0x0000,0x000,0x0000,0x0000,0x0000,0x0000};
回答时间:2020-11-23 15:17:52
楼主再什么情况下确认值不变的?建议在线仿真,进入MAIN函数后,看一下test值,单步运行,同时再watch窗口看一下test的值。
tanic 回答时间:2020-11-23 18:43:45
如楼主描述,不会出现此种情况,肯定现象没搞对
wudianjun2001 回答时间:2020-11-23 19:46:37
这么低级的问题应该不会有的,单步仿真看看,或者初始化再单步看看,到什么时候变的,还是其他原因引起的
陌路夕颜 回答时间:2020-11-25 13:53:48
建议直接上代码,不想上代码就打印变量的地址,或者在线调试
toofree 回答时间:2020-11-25 14:35:45
变量定义时指定地址要谨慎,不要占用系统栈空间。
edmundlee 回答时间:2020-11-25 15:16:54
还是贴代码吧。这应该是对齐的问题, 你可以试一下把7改为8, 问题就会解决了, 信不?
ts2000 回答时间:2020-11-25 17:17:24
数组只定义不初始化的话,是不会占用内存的。
butterflyspring 回答时间:2020-11-30 10:46:23
编译有很多条件的,没有具体代码,编译器和版本,以及选项,大家很难判断和验证的。目前看起不应该发生这样的问题。

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版