OpenEdv-开源电子网

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

关于在delay_init处进入了HardFault_Handler的问题

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2022-8-11
在线时间
2 小时
发表于 2022-8-11 15:35:05 | 显示全部楼层 |阅读模式
1金钱
大家好 有个问题想要请教大家 我的程序在delay_init处进入了HardFault_Handler,注释掉该句后又会在uart_init进入。我前面一共定义了9个double类型的一维数组,当我注释掉最后一个后,又不会进HardFault_Handler了,但是在实际应用时确实需要定义这么多数组。
请问有大佬知道为什么吗?有什么解决办法吗?


代码如下:(为在串口通信例程基础上加了定义数组,while循环内程序均为例程,除删除几个printf外未做任何修改)

#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "beep.h"
#include "key.h"
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "beep.h"
#include "key.h"
#include "math.h"
#include "string.h"
#include "stdlib.h"

int main(void)
{

        u8 t;
        u8 len;       
        u16 times=0;

        u16        _x0,_y0;
        double x0,y0;
        double _x1,_y1;
        u16 x1,y1;
       
        unsigned long N;    //积分份数
        unsigned long i ,j;
  long double W;
        short P;
  long double a , b , c , d;        //积分上下限
       
        double X[]={0,                                        //矩阵初始化与赋值
                                0,
                                0,
                                0,
                                0,
                                0};
        double S[]={1,0,0,0,0,0,
                                0,1,0,0,0,0,
                                0,0,1,0,0,0,
                                0,0,0,1,0,0,
                                0,0,0,0,1,0,
                                0,0,0,0,0,1};
       
        double A[]={1,0,1,0,0.5,0,                //以下矩阵不需要更新
                                0,1,0,1,0,0.5,
                                0,0,1,0,1,0,
                                0,0,0,1,0,1,
                                0,0,0,0,1,0,
                                0,0,0,0,0,1};
        double B[]={0.5,
                                0.5,
                                1,
                                1,
                                1,
                                1};
        double Q[]={0.25,0,0.5,0,0.5,0,
                                0,0.25,0,0.5,0,0.5,
                                0.5,0,1,0,1,0,
                                0,0.5,0,1,0,1,
                                0.5,0,1,0,1,0,
                                0,0.5,0,1,0,1};
        double H[]={1,0,0,0,0,0,
                                0,1,0,0,0,0};       
        double R[]={1,0,
                                        0,1};
        double input[]={0,
                                                0};
        double I_S[]={1,0,0,0,0,0,                        //与S矩阵行数相同的单位矩阵
                                        0,1,0,0,0,0,
                                        0,0,1,0,0,0,
                                        0,0,0,1,0,0,
                                        0,0,0,0,1,0,
                                        0,0,0,0,0,1};
       
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
        delay_init(168);                //延时初始化
        uart_init(115200);        //串口初始化波特率为115200
        LED_Init();                                  //初始化与LED连接的硬件接口  
       

       
        while(1)
        {
                if(USART_RX_STA&0x8000)
                {                                          
                        len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
                        for(t=0;t<len;t++)
                        {
                                USART_SendData(USART1, USART_RX_BUF[t]);         //向串口1发送数据
                                while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
                        }
                       
                        USART_RX_STA=0;
                }
                else
                {
                        times++;;  
                        if(times%30==0)LED0=!LED0;//闪烁LED,提示系统正在运行.
                        delay_ms(10);   
                }
        }
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2022-8-12 01:15:24 | 显示全部楼层
定义成全局变量试试看
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-25 09:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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