内存池初始化导致ADC采集数据存到BUF里面异常?

2019-07-20 04:33发布

  今天我将LED,DMA,I2C,USART,TIMER,MALLOC,ADC,LAN放在一起。因为用到网络通信这块,初始化  my_mem_init(SRAMIN)  的时候,也就是初始化内部内存池,采集的ADC值是存放在一个u16 buf[32]里面,结果取出数据的时候,发现异常,比如取出数组一个buf[0]的时候,发现数值居然是0xc2d3;相当于已经超出ADC采集的最大12位 0xfff,当我屏蔽掉 my_mem_init(SRAMIN) 这个时候,结果正常了。网上关于内存管理,资料很少。请求原子哥或者高手,解答一下我的燃眉之急。谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
13条回答
Lelouch31
2019-07-21 09:40
jiangyy 发表于 2018-12-14 18:33
对,就是采样的值存在buf里面,然后打印buf里面的数值,发现很大。屏蔽了内存池初始化,就正常了。很奇怪 ...

160138fptp5mkmtdnk6lst.png 是不是这样子的,我今天中午遇到了,晚上的时候重新看了一下,我定义了两个全局变量数组,晚上的时候把另一个取消了,然后数组中数据就正常了,有可能是因为数组过大,导致数组越界,但是具体原因还是没找到,如果有什么新的发现,还请告知,谢谢你,还是想弄懂为什么出错了。

一周热门 更多>