OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3259|回复: 9

程序死在这个语句中了,HardFault_Handler\ PROC EXPORT HardFault_Handler [WEA...

[复制链接]

17

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
金钱
412
注册时间
2015-10-22
在线时间
95 小时
发表于 2016-4-10 13:09:51 | 显示全部楼层 |阅读模式
5金钱
我设置了两个外部中断,简单使用时候都没错,都可以正常实现功能,在主函数中我加了一些数据处理后再按按钮程序就死在这里了,百度查了也没太看懂,我用的是寄存器版本,已经把[mw_shl_code=applescript,true] ;LDR     R0, =SystemInit       
                ;BLX     R0                  [/mw_shl_code]  原子哥已经把这两句注释掉了啊,但是还是出错 QQ截图20160410130919.png 用在线调试显示是在这里就不动了

最佳答案

查看完整内容[请看2#楼]

那应该看什么部分
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

17

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
金钱
412
注册时间
2015-10-22
在线时间
95 小时
 楼主| 发表于 2016-4-10 13:09:52 | 显示全部楼层
嗷大喵 发表于 2016-4-10 19:36
你光看这个 也不看不出来啊

那应该看什么部分
回复

使用道具 举报

17

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
金钱
412
注册时间
2015-10-22
在线时间
95 小时
 楼主| 发表于 2016-4-10 13:11:04 | 显示全部楼层
我没加一些数据处理之前都是可以的,一加这些处理之后再按下程序就卡在这里了
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11553
金钱
11553
注册时间
2014-4-1
在线时间
1317 小时
发表于 2016-4-10 13:13:20 | 显示全部楼层

问题应当在后面加的程序里。


回复

使用道具 举报

17

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
金钱
412
注册时间
2015-10-22
在线时间
95 小时
 楼主| 发表于 2016-4-10 13:16:43 | 显示全部楼层
应该是书写这些数值时候出现的问题,我把这些语句都注释掉就没问题了[mw_shl_code=applescript,true]                //        res=f_open (file,(char*)pch, FA_OPEN_EXISTING|FA_WRITE);
                               
                                //res=f_lseek(file,file->fsize);//移动文件指针
                               
                          //sprintf((char*)mname,"最大值①:%d最大值②:%d最大值③:%d",rank[6],rank[5],rank[4]);
                                //res=f_write(file,(const TCHAR*)mname,strlen((const TCHAR*)mname),&br);//向文件内写入最大值
             // sprintf((char*)nname,"最小值①:%d最小值②:%d最小值③:%d",rank[0],rank[1],rank[2]);
                        //        res=f_write(file,(const TCHAR*)nname,strlen((const TCHAR*)nname),&br);//向文件内写入最小值
                        //        sprintf((char*)aname,"平均值:%d",avg);
                                //res=f_write(file,(const TCHAR*)aname,strlen((const TCHAR*)aname),&br);//向文件内写入平均值
                        //        res=f_close(file);   //关闭打开的文件 [/mw_shl_code]

数据处理不当吗?
回复

使用道具 举报

17

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
金钱
412
注册时间
2015-10-22
在线时间
95 小时
 楼主| 发表于 2016-4-10 13:18:23 | 显示全部楼层
xuande 发表于 2016-4-10 13:13
问题应当在后面加的程序里。

恩,可是都是一些简单的加减乘除啊,我也单独运行过数据处理的程序,没问题的啊
回复

使用道具 举报

17

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
金钱
412
注册时间
2015-10-22
在线时间
95 小时
 楼主| 发表于 2016-4-10 13:19:11 | 显示全部楼层
本帖最后由 昊430 于 2016-4-10 13:20 编辑

[mw_shl_code=applescript,true]if(signal1==1)  //开始按键后收录接收数据并运算数据
                {
                        sum[pec]=(write_buf[2]-'0')*pow(10,6)+(write_buf[3]-'0')*pow(10,5)+(write_buf[4]-'0')*pow(10,4)+(write_buf[5]-'0')*pow(10,3)+(write_buf[6]-'0')*pow(10,2)+(write_buf[7]-'0')*pow(10,1)+(write_buf[8]-'0')*pow(10,0);
                                
                                       
                 if(pec==5)
                 {
                   for(ranki=0;ranki<6;ranki++)
                        {
                   rank6[ranki]=sum[ranki];
                                // printf("%d\r\n",rank[ranki]);
                   }
                         for(j1=0;j1<6;j1++)
                         {
                                 for(j2=0;j2<6-1-j1;j2++)
                                 {
                                         if(rank6[j2]>rank6[j2+1])
                                         {
                                           pai=rank6[j2];
                                           rank6[j2]=rank6[j2+1];
                                           rank6[j2+1]=pai;
                                         }
                                 }
                         }
                         rank[0]=rank6[0];
                         rank[1]=rank6[1];
                         rank[2]=rank6[2];
                         rank[4]=rank6[3];
                         rank[5]=rank6[4];
                         rank[6]=rank6[5];
                        
                         SUM=rank6[0]+rank6[1]+rank6[2]+rank6[5]+rank6[4]+rank6[3];
                        
                 }
                 
         if(pec>5)
                 {
                         if((sum[pec]>rank[4])||(sum[pec]<rank[2]))
                         {
                          rank[3]=sum[pec];
                          for(j1=0;j1<7;j1++)
                          {
                                 for(j2=0;j2<7-1-j1;j2++)
                                  {
                                         if(rank[j2]>rank[j2+1])
                                          {
                                           pai=rank[j2];
                                           rank[j2]=rank[j2+1];
                                           rank[j2+1]=pai;
                                          }
                                  }
                           }
                   }

                        SUM+=sum[pec];
                        avg=SUM/(pec+1);
                 }
                        pec++;
                }[/mw_shl_code]
这是我后加的数据处理程序,就是采集到的数据求和、排序、平均值这些简单的运算啊,
回复

使用道具 举报

27

主题

711

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
12566
金钱
12566
注册时间
2015-11-5
在线时间
2150 小时
发表于 2016-4-10 14:09:19 | 显示全部楼层
看样子像是内存溢出或者访问了不能访问的地址
拿来长岛冰茶换我半晚安睡
回复

使用道具 举报

17

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
金钱
412
注册时间
2015-10-22
在线时间
95 小时
 楼主| 发表于 2016-4-10 15:46:14 | 显示全部楼层
FreeRTOS 发表于 2016-4-10 14:09
看样子像是内存溢出或者访问了不能访问的地址

可是我单独运行两个功能都没问题的啊,合在一起就出问题了
回复

使用道具 举报

1

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
195
金钱
195
注册时间
2015-11-26
在线时间
25 小时
发表于 2016-4-10 19:36:10 | 显示全部楼层
你光看这个 也不看不出来啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-19 09:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表