stm32很奇怪的问题

2019-03-23 18:59发布

我在做一个数据处理的问题,程序基本可以了,但是加入一个滤波函数f1()的调用后,数据就全乱了,之后把这个函数调用改成紧紧只是调用,不对数据对象进行任何操作,数据任然是乱的,但是一去掉这段调用,数据就正常了,不知道是怎么回事。大概是下面这样的情况,麻烦大师帮忙看看
func()
{
....
a = f1(100);
a = f2(b);
....
} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
newsa111
2019-03-24 23:10
zqjqq88 发表于 2014-3-12 19:15
1. 看滤波函数是否确实没有处理数据;
2. 看滤波这一段是不是耗费了太多时间,虽然不改变数据本身,但是时 ...

你说的很对啊,我调试发现这个函数耗时比较长,导致数据混乱,经过调高主频后,数据恢复正常,但是再继续加滤波函数,或者调高滤波对象的长度(相当于内存大了)或是再加滤波,又会出现这种情况,调试仿真发现耗时影响已经没有了,所以怀疑是内存的问题,不知道是不是哪里有内存限制了,我用的是stm32f407vet6,本身耗内存不是很大    Total RO  Size (Code + RO Data)                16012 (  15.64kB)
    Total RW  Size (RW Data + ZI Data)             14824 (  14.48kB)
    Total ROM Size (Code + RO Data + RW Data)      16280 (  15.90kB)

Maximum Stack Usage = 104 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)
我的IROM1的size是100000,IRAM1是20000
是不是stm32哪里有内存限制还是怎么回事

一周热门 更多>