[STM32F4]

程序跑飞了

[复制链接]
709|7
手机看帖
扫描二维码
随时随地手机跟帖
feiyang0725|  楼主 | 2017-10-13 10:40 | 显示全部楼层 |阅读模式
u8 AotoCompenAppro(u16  yzs)
{
        
        u16 b[10];
        u8 min=0,i;
        AotoCompenInit();
        for(i=0;i<32;i++)
        {
                if(AotoCompenEvent.Map.CapacityValue[i]>yzs)
                {
                        b[i]=AotoCompenEvent.Map.CapacityValue[i]-yzs;
                }
                else
                {
                        b[i]=yzs-AotoCompenEvent.Map.CapacityValue[i];
                }
        }

  for(i=0;i<32;i++)
        {
                if(b[i]<b[min])
                {
                        min=i;
                }
               
        }
        //min=(b[i]<b[min])?i:min;
        
        return min;
}
这是我写的一个排序的函数,程序只要一调用就跑飞了,我单步跟这个函数,发现可以正常运行,return返回的值也正常,但是一运行完,程序就飞了。。
feelhyq| | 2017-10-13 10:52 | 显示全部楼层
u16 b[10];  越界了

for(i=0;i<32;i++)
        {
                if(b[i]<b[min])  都到 32了

使用特权

评论回复
gujiamao12345| | 2017-10-13 13:47 | 显示全部楼层
feelhyq 发表于 2017-10-13 10:52
u16 b[10];  越界了

for(i=0;i

好眼神

使用特权

评论回复
zhuotuzi| | 2017-10-13 17:43 | 显示全部楼层
果然for没有写对。。

使用特权

评论回复
junpeng324| | 2017-10-13 18:57 | 显示全部楼层
加看门狗呗。

使用特权

评论回复
mmuuss586| | 2017-10-13 21:02 | 显示全部楼层

解决了就好;

使用特权

评论回复
zhuotuzi 发表于 2017-10-13 17:43
果然for没有写对。。

厉害

使用特权

评论回复
zhuotuzi| | 2017-10-24 16:49 | 显示全部楼层

你看错了,是前面的朋友先发现的。。他比我厉害。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

124

帖子

1

粉丝