打印
[STM32F1]

关于STM32F103二维数组问题

[复制链接]
1271|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我定义了一个二维数组,当列数为20,数组没有异常,可以正常读取数据,当列数改成28,读取数组数据异常。

使用特权

评论回复
沙发
1002689898|  楼主 | 2020-9-9 18:08 | 只看该作者

使用特权

评论回复
板凳
1002689898|  楼主 | 2020-9-9 18:10 | 只看该作者


使用特权

评论回复
地板
1002689898|  楼主 | 2020-9-9 18:11 | 只看该作者


使用特权

评论回复
5
1002689898|  楼主 | 2020-9-9 18:13 | 只看该作者


使用特权

评论回复
6
1002689898|  楼主 | 2020-9-9 18:16 | 只看该作者
1、定义数组
2、将 u16_temp = 0xaa; 并检验赋值成功
3、将u16_temp = testResult[1][0];  发现 u16_temp  被赋值为0
4、查看testResult[1][0]的值,为0x53

使用特权

评论回复
7
1002689898|  楼主 | 2020-9-9 18:17 | 只看该作者
如果我把定义数组中,列的值改成20,就没有异常了,改成  const char testResult[][20]

使用特权

评论回复
8
1002689898|  楼主 | 2020-9-9 18:18 | 只看该作者
@香水城   版主,帮我看一下这个问题,不胜感激。

使用特权

评论回复
9
jessxj78| | 2020-9-9 23:10 | 只看该作者
检查一下堆栈和RAM是否超限

使用特权

评论回复
10
一路向北lm| | 2020-9-10 08:43 | 只看该作者
分配内存

使用特权

评论回复
11
brucewoo| | 2020-9-10 09:09 | 只看该作者
定义的时候改成
const char testResult [3][28] = {......} 试试

使用特权

评论回复
12
ufbycd| | 2020-9-10 09:35 | 只看该作者
不如定义成字符串指针数组稳妥点:
const char *testResult[] = 
{
        "S000               ",
        "S001               ",
        "S002               ",
};




使用特权

评论回复
13
1002689898|  楼主 | 2020-9-10 09:46 | 只看该作者
jessxj78 发表于 2020-9-9 23:10
检查一下堆栈和RAM是否超限

感谢回复,我用const修饰,数组放在了FLASH中,我特意用STVP打开HEX文件,数组确实在FLASH中,FLASH空间剩余很多,没有满。

使用特权

评论回复
14
1002689898|  楼主 | 2020-9-10 09:47 | 只看该作者

感谢回复,请问如何分配内存呀

使用特权

评论回复
15
1002689898|  楼主 | 2020-9-10 09:47 | 只看该作者
brucewoo 发表于 2020-9-10 09:09
定义的时候改成
const char testResult [3][28] = {......} 试试

好的,我试试哦,这么做会很严谨。

使用特权

评论回复
16
1002689898|  楼主 | 2020-9-10 09:51 | 只看该作者
ufbycd 发表于 2020-9-10 09:35
不如定义成字符串指针数组稳妥点:

感谢回复,这个好高级呀,我第一次知道还可以这样写呢,我去搞搞,谢谢哈

使用特权

评论回复
17
香水城| | 2020-9-10 13:43 | 只看该作者
本帖最后由 香水城 于 2020-12-6 22:51 编辑
1002689898 发表于 2020-9-9 18:18
@香水城   版主,帮我看一下这个问题,不胜感激。

会不会代码别的地方出了问题。

这个数组定义没发现啥问题,我刚顺便测试了下,将那个列数随便调整过后进行读取访问 没碰到问题。

使用特权

评论回复
18
勇敢的大白菜| | 2020-9-10 14:42 | 只看该作者
我感觉是堆栈的问题,堆栈是如何设置的,分享一下,我看看。

使用特权

评论回复
19
ayb_ice| | 2020-9-10 15:28 | 只看该作者
高度,直接看数组内容不就结了吗,如果正确就是其它问题

使用特权

评论回复
20
1002689898|  楼主 | 2020-9-10 20:22 | 只看该作者
香水城 发表于 2020-9-10 13:43
会不会代码别的地方出了问题。

这个数组定义没发现啥问题,我刚顺便测试了下,将那个列数随便调整没后进 ...

我新建了一个工程,测试了一下,也没有问题。

使用特权

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

本版积分规则

18

主题

115

帖子

1

粉丝