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

调试器显示变量数值错误

[复制链接]
patch1582 提问时间:2026-7-12 21:25 / 未解决

我使用 CooCox 调试 STM32F4,遇到一个调试器异常问题:

static STEP_MODE val_step_mode = FALSE;

1 if ((Get_Core_Current_Track()->step_mode) != val_step_mode)

2 {

3 val_step_mode = Get_Core_Current_Track()->step_mode;

4 return BS_SUB_MODE;

5 }

第 1 行用来对比程序运行时的实时状态与静态变量val_step_mode;两者不一致就进入 if 分支,把实时状态赋值给静态变量,等待下一轮判断。

按下开发板按键后,条件成立,程序进入 if 块,说明此时两个变量值必然不相等。

但调试器表达式窗口显示val_step_mode为 0;单步执行第 3 行赋值语句后,调试器里val_step_mode依旧显示 0,逻辑上完全说不通。

奇怪的是程序实际运行逻辑完全正常,其他函数能读到正确的变量值、执行行为无误。

代码里多处静态 / 全局变量都出现同类问题:调试窗口显示的值错误,但程序真实运算不受影响

赞 收藏 评论1 发布时间:2026-7-12 21:25

举报

1个回答
butterflyspring 回答时间:2026-7-13 16:26:14
这个编译器比较小众,它输出的结果不好判断。


建议用 STM32CUBEIDE 试试,免费的。



关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版