定义数组后出现错误 HardFault_Handler

在学习STM32时,为串口程序添加数组定义和处理函数导致了HardFault_Handler错误。问题可能源于栈区溢出,因为局部变量存储在栈上。当栈大小设定不足时,会引发该错误。解决方案是检查并适当增加Stack_Size的设定,同时考虑函数调用时的栈空间需求。
摘要由CSDN通过智能技术生成

最近学习stm32.

在原子的串口程序前加了几个数组定义,加了个对数组处理的函数,出现了HardFault_Handler的错误,不知道怎么解决!!!代码如下

void calDist(float dist[8][8],float real[8],float test[8])
{
    for(i=0; i<8;i++)
	{
		for(j=0; j<8;j++)
		{
		  dist[i][j]=(test[i]-real[j])*(test[i]-real[j]);
		  printf("dist[%d][%d]=%d",i,j,dist[i][j]);
		}
		printf("\r\n");
	}
}
 float calMinDis(float dist[8][8],float route[8][8]){  
  for(i=0; i<8;i++){for(j=0; j<8;j++){      
  if(i+j==0)    
  {       
  route[i][j]=dist[i][j];     
    continue;}if(i==0){  
   route[i][j]=dist[i][j]+route[i][j-1];
   continue;
}
if(j==0)
{    
 route[i][j]=dist[i][j]+route[i-1][j];  
 continue;}      
  route[i][j]=route[i-1][j-1];      
  if(route[i][j]>route[i]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值