OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5217|回复: 2

关于数据冲突的一个奇怪问题

[复制链接]

9

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2013-6-9
在线时间
0 小时
发表于 2014-5-28 13:19:10 | 显示全部楼层 |阅读模式
5金钱
原子哥,又有问题来请教了。。。
今天我定义了一个结构体,但是在使用过程中发现,它内部有些数值会在LCD初始化函数运行之后被赋值,好像我定义的结构体用到了LCD初始化函数参数部分的内存。硬件调试中发现,在LCD_dir函数里,就有几个参数占用了我定义的结构体内部的数据位置。请问这个问题怎么解决??我定义的结构体是用来存储一些数据和信息,方便采集完用串口发出,但是现在有小部分的数值被其他函数的参数占用了。
请帮忙看看,谢谢。

最佳答案

查看完整内容[请看2#楼]

已经解决,我反复做了一些实验。我发现如果我把自己定义的结构体数组里的char errortype[20]改为char errortype[x],x取其他数的话,被占据的空间会变化。我推测是STM32会根据结构体的类型和大小,去分配内存,但是具体怎么分配不清楚,但是肯定会和已经占据内存的参数有冲突。原来我定义的结构体数组为errortype oserror[],我现在改为errortype oserror[200],这样之后,内存应该就申请到一片空白的地方了,目 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2013-6-9
在线时间
0 小时
 楼主| 发表于 2014-5-28 13:19:11 | 显示全部楼层
已经解决,我反复做了一些实验。我发现如果我把自己定义的结构体数组里的char errortype[20]改为char errortype[x],x取其他数的话,被占据的空间会变化。我推测是STM32会根据结构体的类型和大小,去分配内存,但是具体怎么分配不清楚,但是肯定会和已经占据内存的参数有冲突。原来我定义的结构体数组为errortype oserror[],我现在改为errortype oserror[200],这样之后,内存应该就申请到一片空白的地方了,目前是这么解决的,详细的内存分配肯定得之后去看点专门的资料了。发上来大家看看,以免犯同样的错误。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-28 23:18:21 | 显示全部楼层
回复【2楼】未拾的记忆:
---------------------------------
谢谢分享
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-7 17:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表