| 
 
| 我的程序总会在运行一段时间后(有时候半小时或者一小时),进入HardFault_Handler函数,然后就死机了。 在网上查找了下,其原因无非就是
 1.内存溢出或者数组访问越界
 2.堆栈溢出
 
 通过调试 发现程序在运行下面程序后,进入了hardfault handler
 u16 USART2_RX_STA=0;
 u8   USART2_RX_BUF[1024];
 u8* GSM_check_cmd(u8 *str) //字符串比较函数
 {
 char *strx=0;
 if(USART2_RX_STA&0X8000)                //接收到一次数据了
 {
 USART2_RX_BUF[USART2_RX_STA&0X3FF]=0;//添加结束符
 strx=strstr((const char*)USART2_RX_BUF,(const char*)str);
 }
 return (u8*)strx;
 }
 
 感觉这个函数是没有问题的啊,为啥会进入hardfault handler
 
 
 | 
 |