binqiang 发表于 2018-3-15 20:01:57

关于定义数组变量,影响到液晶显示导致死机。求助

在工程里定义数组变量(全局变量),在一定范围内不会影响。。但如果多定义几个(要使用到),编译的时候没有提示错误。但烧写进去显示不能用(FSMC接口)。网络上搜了一些,有的说是堆栈溢出。。。可我更改了堆栈大小,也解决不了。。。求助求助。。这到底是什么原因,怎么个思路解决。比如我需要A;可以用   ----》 改为A就不能用了。。。但奇怪的是我手误输了A;反而可以用。。。。

wenyangzeng 发表于 2018-3-15 20:30:18

本帖最后由 wenyangzeng 于 2018-3-15 20:33 编辑

1、    由于楼主对数组类型的定义(uint8_t、uint6_t等等)未描写清楚,这牵涉到字节对齐的问题。如果A[]都是32位应该没有问题,如果是8位就有可能因对齐问题出现A不能用。
2、这个“不能用”是如何不能用,楼主貌似没有表达清楚。“烧写进去显示不能用(FSMC接口)” ,到底怎样不能用,出现什么故障现象?还望提问能一次把问题的描写清楚。

toofree 发表于 2018-3-16 03:29:56

发个工程上来吧,没遇到过你说的问题,要创造个一样的问题,难度太大了。
有工程的话,大不了,给你看汇编。

bargagebaobei 发表于 2018-3-16 07:48:37

1.如何定义的数组 数组类型没有说明
2.你是如何操作的数组也没说明白
3.请楼主贴代码 我们好看看怎么解决

dsjsjf 发表于 2018-3-20 11:13:46

全局变量不受任务堆栈影响,倒是有可能是数据对齐问题,还请楼主把问题现象描述具体点

butterflyspring 发表于 2018-3-20 11:44:07

这又不是结构体...你可以尝试调试,如果hardfualt,就可以看看是不是缓存的问题,如果是,那是有概率是对齐问题,使用自动对齐语句就好.你可以用IDE里面的memory看看你申请的东西.

无薪税绵 发表于 2018-3-26 11:14:10

我估计不是数组变量的问题,
是某指针未做错误处理,
导致指针跑错地方,影响了显示。

有时候,很容易被表象误导。
建议楼主仔细检查一下显示相关的代码。
页: [1]
查看完整版本: 关于定义数组变量,影响到液晶显示导致死机。求助