串口中断进入死循环 “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)
  {
  }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。