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

2019-07-24 12:56发布

使用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)
  {
  }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
午夜狼嚎
1楼-- · 2019-07-24 14:48
不好意思,这个发错主题了,这是求助帖,管理员帮忙删了吧,谢谢
yklstudent
2楼-- · 2019-07-24 15:16
 精彩回答 2  元偷偷看……
午夜狼嚎
3楼-- · 2019-07-24 17:11
yklstudent 发表于 2018-7-3 18:04
这数组定义跟谁学的?还是自己脑洞大开写的

原子大哥的例程啊。这样有什么问题吗?
yklstudent
4楼-- · 2019-07-24 20:47
原子定位的地址你了解是什么嘛,你定位的地址是什么了解吗?
午夜狼嚎
5楼-- · 2019-07-25 01:44
yklstudent 发表于 2018-7-4 08:15
原子定位的地址你了解是什么嘛,你定位的地址是什么了解吗?

原子哥定义的是ram的地址嘛,我想存在flash,不是就这么定义吗
gotofly21
6楼-- · 2019-07-25 04:25
笑死人,如果两者没区别,为啥人家还多此一举分开。

一周热门 更多>