[STM32F1] stm32f100数组赋值问题

[复制链接]
1664|25
童雨竹 发表于 2025-3-18 08:28 | 显示全部楼层
buf 是全局变量还是局部变量?如果是局部变量,检查一下是不是栈溢出了,导致数据被覆盖。
万图 发表于 2025-3-18 08:29 | 显示全部楼层
你试过在 buf[1] = 34; 之后,加 buf[2] = 0; 吗?看看 buf[2] 还会不会变成 34。
Bblythe 发表于 2025-3-18 08:31 | 显示全部楼层
你能确定 buf 变量没有被优化吗?试试看 -O0 关闭编译优化,看看调试器里显示的值是否正常。
Wordsworth 发表于 2025-3-18 08:33 | 显示全部楼层
是不是 buf 被 volatile 变量或者 DMA 改了?试试看 volatile uint8_t buf[10];,看会不会有影响。
Pulitzer 发表于 2025-3-18 08:35 | 显示全部楼层
你用的是哪款编译器?有些编译器可能会对数组访问进行优化,导致调试器显示的值和实际值不一致。
Uriah 发表于 2025-3-18 08:37 | 显示全部楼层
你试试在 buf[1] = 34; 后面加 __DSB();,确保 CPU 指令同步,看看 buf[2] 还会不会变。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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