使用DMA+IDLE HAL库方式接收串口不等长数据 接收到的所有数据均正常 但是收到15个字节的数据后 一执行清除IDLE标志位 (__HAL_UART_CLEAR_IDLEFLAG( huart1); )就进入HardFault_Handler错误中断,但是收到<15个字节的数据都是正常的,我每次使用dma方式接收都是50个字节(HAL_UART_Receive_DMA( huart1, (uint8_t *) userUart.userUart1.ReciveBuff, 50);)
我查了些资料 通过R13寄存器里面存的地址找出来最后一条执行的程序 是__HAL_UART_CLEAR_IDLEFLAG( huart1); 执行完这一条后就进入错误中断了