stm32死机问题

lin111000713 lin111000713 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
为什么在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];
}
...全文
评论 11
收藏 已收藏
分享
返回顶部
lin111000713
单片机/工控 27,522 成员 28,796 内容