[其他ST产品] cubeIDE 编译等级不同,if函数可能无法正常执行?

[复制链接]
 楼主| jcky001 发表于 2022-9-2 10:40 | 显示全部楼层 |阅读模式
芯片使用G030,优化等级高于optimize for debug时,就会出现 main函数里的while()循环出现if()内语句不能正常执行的问题
155601m6pgnhignejzk3zz.jpg 155604imapc7nz652ay7ar.jpg


查了半天才发现跟优化等级的有关的
elephant00 发表于 2022-9-2 10:41 | 显示全部楼层

优化等级很考验C语言功底啊,要求不高就别开起优化等级了
sonicll 发表于 2022-9-2 11:18 | 显示全部楼层
你把if语句用来判断的变量,定义前面加个volatile关键字再试试
两只袜子 发表于 2022-9-3 10:00 | 显示全部楼层
if的变量要申明成volatile了吗?否则编译不会每次读出变量的最新值做判断。

cr315 发表于 2022-9-4 10:00 | 显示全部楼层


这是正常现象,跟你的代码、跟优化等级息息相关。

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

本版积分规则

1636

主题

5575

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部