|
设备进行串口通信时,会进入硬中断,通过debug在hardfault_handle函数中增加断电然后仿真,回调最后一次执行就到了串口接收中断了报错还是意外的错,我配置的是96008N1,感觉像是溢出了,下面是图中是报错提示的位置,我接收数据有数据指针位置归零,有标志位清除;
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
uint8_t c;
if(huart->Instance==UART5)
{
HAL_UART_Receive_IT(huart,&c,1);//接收数据
__HAL_USART_CLEAR_FLAG(&huart5, UART_FLAG_RXNE);
// SEGGER_RTT_printf(0,"c1=%2x\r\n",c);
usart5_buf(rx5_cnt)=c;//放入待处理的buf
rx5_cnt++;
HAL_UART_Receive_IT(huart,&c,1);//再次开启中断接收
}
}
|
|