OpenEdv-开源电子网

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

串口中断进入死循环 “HardFault_Handler”

[复制链接]

17

主题

194

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1049
金钱
1049
注册时间
2016-9-3
在线时间
158 小时
发表于 2018-7-3 16:10:57 | 显示全部楼层 |阅读模式
使用STM32F103C8T6单片机尝试实现IAP程序,使用USART1来发送APP。在发送APP的时候串口进入中断,执行完USART_RX_BUF[USART_RX_CNT]=res;这句后进入HardFault_Handler死循环。

中断服务程序如下,原子大哥的例程:
u8 USART_RX_BUF[USART_REC_LEN] __attribute__ ((at(0X08003000)));
u16 USART_RX_CNT=0;
#define USART_REC_LEN  20*1024

void USART1_IRQHandler(void)
{
        u8 res;       

        if(USART_GetITStatus(USART1,USART_IT_RXNE))
        {         
                res=USART_ReceiveData(USART1);
                if(USART_RX_CNT<USART_REC_LEN)
                {
                        USART_RX_BUF[USART_RX_CNT]=res;
                        USART_RX_CNT++;                                                                                                      
                }
        }

}


HardFault_Handler死循:
void HardFault_Handler(void)
{

  while (1)
  {
  }
}

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

使用道具 举报

17

主题

194

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1049
金钱
1049
注册时间
2016-9-3
在线时间
158 小时
 楼主| 发表于 2018-7-3 16:18:02 | 显示全部楼层
不好意思,这个发错主题了,这是求助帖,管理员帮忙删了吧,谢谢
回复 支持 反对

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7464
金钱
7464
注册时间
2015-1-15
在线时间
1368 小时
发表于 2018-7-3 18:04:38 | 显示全部楼层
这数组定义跟谁学的?还是自己脑洞大开写的
一分耕耘一分收获。
回复 支持 反对

使用道具 举报

17

主题

194

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1049
金钱
1049
注册时间
2016-9-3
在线时间
158 小时
 楼主| 发表于 2018-7-3 21:26:51 | 显示全部楼层
yklstudent 发表于 2018-7-3 18:04
这数组定义跟谁学的?还是自己脑洞大开写的

原子大哥的例程啊。这样有什么问题吗?
回复 支持 反对

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7464
金钱
7464
注册时间
2015-1-15
在线时间
1368 小时
发表于 2018-7-4 08:15:38 | 显示全部楼层
原子定位的地址你了解是什么嘛,你定位的地址是什么了解吗?
一分耕耘一分收获。
回复 支持 反对

使用道具 举报

17

主题

194

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1049
金钱
1049
注册时间
2016-9-3
在线时间
158 小时
 楼主| 发表于 2018-7-4 09:17:31 | 显示全部楼层
yklstudent 发表于 2018-7-4 08:15
原子定位的地址你了解是什么嘛,你定位的地址是什么了解吗?

原子哥定义的是ram的地址嘛,我想存在flash,不是就这么定义吗
回复 支持 反对

使用道具 举报

49

主题

341

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5271
金钱
5271
注册时间
2012-8-25
在线时间
1025 小时
发表于 2018-7-4 09:43:07 | 显示全部楼层
笑死人,如果两者没区别,为啥人家还多此一举分开。
回复 支持 反对

使用道具 举报

17

主题

194

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1049
金钱
1049
注册时间
2016-9-3
在线时间
158 小时
 楼主| 发表于 2018-7-4 10:29:22 | 显示全部楼层
gotofly21 发表于 2018-7-4 09:43
笑死人,如果两者没区别,为啥人家还多此一举分开。

啊?我知道两个地址有区别,所以我想存在flash,就改成0x08003000了
回复 支持 反对

使用道具 举报

8

主题

156

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1553
金钱
1553
注册时间
2016-11-21
在线时间
411 小时
发表于 2018-7-4 10:38:58 | 显示全部楼层
午夜狼嚎 发表于 2018-7-4 10:29
啊?我知道两个地址有区别,所以我想存在flash,就改成0x08003000了

往flash里面存数据需要特殊的操作的  需要先flash_unlock 然后好多操作呢,有一个例程 实验32 FLASH模拟EEPROM实验  是专门讲往flash存数据的
回复 支持 反对

使用道具 举报

17

主题

194

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1049
金钱
1049
注册时间
2016-9-3
在线时间
158 小时
 楼主| 发表于 2018-7-4 10:50:19 | 显示全部楼层
msq001 发表于 2018-7-4 10:38
往flash里面存数据需要特殊的操作的  需要先flash_unlock 然后好多操作呢,有一个例程 实验32 FLASH模拟E ...

我知道了。主要是对原子哥的程序没太看懂,你这么一说,我大概知道问题出在哪儿了。我再去看看程序吧,谢谢!
回复 支持 反对

使用道具 举报

17

主题

194

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1049
金钱
1049
注册时间
2016-9-3
在线时间
158 小时
 楼主| 发表于 2018-7-4 10:53:49 | 显示全部楼层
原子哥的IAP例程里面有flash APP和SRAM APP两种。我想实现flash APP应该怎么设置和定义呢?
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-17 00:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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