在调试KEIL5程序的时候,程序过一会一直卡在下面的函数中,这个问题一直困惑了好久。
void HardFault_Handler(void)
{
/* USER CODE BEGIN HardFault_IRQn 0 */
/* USER CODE END HardFault_IRQn 0 */
while (1)
{
/* USER CODE BEGIN W1_HardFault_IRQn 0 */
/* USER CODE END W1_HardFault_IRQn 0 */
}
}
我的引起的原因是串口接收中断函数中的一个数组存满了,超出了数组的界限。我将数组改成在存满的时候进行清零操作,从数组0下标开始存。网上说的一些原因是有道理的,即数组溢出或者内存溢出等,可以从这个方面去针对性的排查。目前,仍然没有太好的方法去寻找这个BUG。下面图中红圈1里面的数组溢出,然后我多加了红圈2里面的数组清0操作。就可以了
版权声明:本文为lileiyuan1985原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。