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

STM32F103C8 全局变量初始化不成功

[复制链接]
a707083746 提问时间:2018-8-11 16:28 /
本帖最后由 a707083746 于 2018-8-11 16:34 编辑

如下图,我定义了两个全局变量并设定一个初值,但在KEIL上进入调试状态时,看到变量的值并不是我设定的值,这是为什么呀?
全局变量初始化不成功.png
编译结果如下:
代码量.png
优化等级是0
优化等级.png

收藏 评论8 发布时间:2018-8-11 16:28

举报

8个回答
MrJiu 回答时间:2018-8-11 16:42:08
不要用在线调试,用打印,或者用条件判断。。。在线调试有时候看数据很操蛋,而且还和技能有关系(就是指对于在线调试的熟练程度)

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

huangyanga 回答时间:2018-8-11 17:01:22
估计得看看你在什么地方用了这个变量

评分

参与人数 1蝴蝶豆 +1 收起 理由
zero99 + 1

查看全部评分

a707083746 回答时间:2018-8-11 17:06:10
MrJiu 发表于 2018-8-11 16:42
不要用在线调试,用打印,或者用条件判断。。。在线调试有时候看数据很操蛋,而且还和技能有关系(就是指对 ...

感谢回答。
应该是我程序没写好,在操作一个数组时改到这个变量了。。。
toofree 回答时间:2018-8-11 17:22:20
本帖最后由 toofree 于 2018-8-11 19:04 编辑

定义了变量,必须在程序中使用此变量,否则将被优化掉,赋初值不管用。
在程序中打印一下;或者重新赋值一下,在程序中if判断此变量的值,都可以。

在或者加上 volatile 修饰

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

a707083746 回答时间:2018-8-11 17:31:59
toofree 发表于 2018-8-11 17:22
定义了变量,必须在程序中使用此变量,否则将被优化掉,赋初值不管用。
在程序中打印一下,或者重新赋值一 ...

是啊。
菜鸟总是碰到各种奇怪的问题

wenyangzeng 回答时间:2018-8-11 18:52:51
本帖最后由 wenyangzeng 于 2018-8-11 18:54 编辑

试看看__IO uint32_t  
feixiang20 回答时间:2018-8-11 23:52:18
赋值参数的时候不要搞错混淆就行,代码中防止被重新赋值

评分

参与人数 1蝴蝶豆 +1 收起 理由
zero99 + 1

查看全部评分

hubang-393854 回答时间:2018-8-11 23:57:19
我也准备在此平台开发,学习了

所属标签

相似问题

官网相关资源

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