stm32死机问题
为什么在VC++6.0调用这个函数没有问题,但是在stm32调用这个函数就死机了?是不是局部变量开的内存太大了??
main函数调用: filter(ram, 900, &max, &min, 1);//返回的最大值是拍好序的第n-1-1,最小值为排好序的第1个
//主函数调用的似乎在这里会死机不懂为什么
/*******************************************************
* 函数名称:Filter_MaxMin
* 功 能: 实现软件滤波,并且取出指定的最大和最小值
* 入口参数: value_pre[]:原始数据
n:原始数据的个数
*pMax:要返回的最大值
*pMin:要返回的最小值
max_min:要返回值的范围。默认是第一个和倒数
* 出口参数: 原始数据的中间值
* 范 例:filter(ram, 10, &max, &min, 0) //返回的最大值是拍好序的第n-1,最小值为排好序的第0个
filter(ram, 10, &max, &min, 1);//返回的最大值是拍好序的第n-1-1,最小值为排好序的第1个
* 说 明:本滤波程序没有改变原始数据,内部有复制原始数据的操作
* 其 他:
*******************************************************/
//总体思路:1. 对原始数据进行复制
// 2.冒泡排序法返回中点值,最大值,最小值
// 3.
char Filter_MaxMin(const char value_pre[], int n, char* pMax, char* pMin, int max_min)
{
char count,i,j,temp;
char value_buf[n];
//总体思路:1. 对原始数据进行复制
for(i=0; i<n; i++)
{
value_buf[i] = value_pre[i];
}
//2.冒泡排序法返回中点值,最大值,最小值
for (j=0;j<n-1;j++)
{
for (i=0;i<n-j-1;i++)
{
if ( value_buf[i]>value_buf[i+1] )
{
temp = value_buf[i];
value_buf[i] = value_buf[i+1];
value_buf[i+1] = temp;
}
}
}
*pMax = value_buf[n-1-max_min];
*pMin = value_buf[max_min];
return value_buf[(n-1)/2];
}