发新帖我要提问
12
返回列表
打印
[STM32F1]

stm32f100数组赋值问题

[复制链接]
楼主: probedog
手机看帖
扫描二维码
随时随地手机跟帖
21
童雨竹| | 2025-3-18 08:28 | 只看该作者 回帖奖励 |倒序浏览
buf 是全局变量还是局部变量?如果是局部变量,检查一下是不是栈溢出了,导致数据被覆盖。

使用特权

评论回复
22
万图| | 2025-3-18 08:29 | 只看该作者
你试过在 buf[1] = 34; 之后,加 buf[2] = 0; 吗?看看 buf[2] 还会不会变成 34。

使用特权

评论回复
23
Bblythe| | 2025-3-18 08:31 | 只看该作者
你能确定 buf 变量没有被优化吗?试试看 -O0 关闭编译优化,看看调试器里显示的值是否正常。

使用特权

评论回复
24
Wordsworth| | 2025-3-18 08:33 | 只看该作者
是不是 buf 被 volatile 变量或者 DMA 改了?试试看 volatile uint8_t buf[10];,看会不会有影响。

使用特权

评论回复
25
Pulitzer| | 2025-3-18 08:35 | 只看该作者
你用的是哪款编译器?有些编译器可能会对数组访问进行优化,导致调试器显示的值和实际值不一致。

使用特权

评论回复
26
Uriah| | 2025-3-18 08:37 | 只看该作者
你试试在 buf[1] = 34; 后面加 __DSB();,确保 CPU 指令同步,看看 buf[2] 还会不会变。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则