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

调试器显示变量数值错误

[复制链接]
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,逻辑上完全说不通。

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

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

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

举报

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