[STM32F4] 程序跑飞了

[复制链接]
 楼主| xxmmi 发表于 2021-1-4 23:50 | 显示全部楼层 |阅读模式
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返回的值也正常,但是一运行完,程序就飞了。
chuxh 发表于 2021-1-4 23:53 | 显示全部楼层

u16 b[10];  越界了

for(i=0;i<32;i++)
        {
                if(b[i]<b[min])  都到 32了
juventus9554 发表于 2021-1-4 23:56 | 显示全部楼层
好眼神
juventus9554 发表于 2021-1-5 21:06 | 显示全部楼层
果然for没有写对。。
stly 发表于 2021-1-5 21:11 | 显示全部楼层
加看门狗呗。
houcs 发表于 2021-1-5 21:15 | 显示全部楼层
果然是越界了。
pangb 发表于 2021-1-5 21:18 | 显示全部楼层
编译器竟然不会报错,给力。
morrisk 发表于 2021-1-5 21:23 | 显示全部楼层
沙发慧眼如炬啊
lium 发表于 2021-1-5 21:29 | 显示全部楼层
i的定义有问题
 楼主| xxmmi 发表于 2021-1-5 21:33 | 显示全部楼层
搞定了,呵呵,犯了低级错误……多谢各位
木木guainv 发表于 2021-2-1 23:01 | 显示全部楼层
知道跑到哪里去了吗
磨砂 发表于 2021-2-1 23:04 | 显示全部楼层
很明显  数据越界了
晓伍 发表于 2021-2-1 23:08 | 显示全部楼层
数据越界了  一开始定义的10  后来读取的32
八层楼 发表于 2021-2-1 23:14 | 显示全部楼层
多明显啊  数组定义的不够长啊
观海 发表于 2021-2-1 23:21 | 显示全部楼层
这样的错误编译器是不会报错的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

369

主题

4278

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部

369

主题

4278

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部