uart1中断方式接收后不返回主程序了,但新的中断还能进来,芯片型号STM32F103RCT6 void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { uint8_t i; for(i=0;i<9;i=i+1) { tembuffer=rxbuffer; } if(HAL_UART_Receive_IT(&huart1, rxbuffer, 5)==HAL_OK ) {Error_Handler();} HAL_UART_Receive_IT(&huart1, rxbuffer, 5); //UNUSED(huart); } |
当if(HAL_UART_Receive_IT(&huart1, rxbuffer, 5)==HAL_OK )成立时,就进入error_handler, 是不是有while(1),这样的话,就无法返回主程序
可以在仿真模式下打断点看一下程序支持的地方。中断能够正常进入,说明没有进入错误中断。也许和楼上说的一样是进入了错误处理的死循环。