- //串口2中断服务程序
- void USART2_IRQHandler(void)
- {
- u32 timeout=0;
- u32 maxDelay=0x1FFF;
- HAL_UART_IRQHandler(&UART2_Handler); //调用HAL库中断处理公用函数
-
- timeout=0;
- // while (HAL_UART_GetState(&UART2_Handler)!=HAL_UART_STATE_READY)//等待就绪
- // {
- // timeout++;////超时处理
- // if(timeout>maxDelay) break;
- // }
- // timeout=0;
- // while(HAL_UART_Receive_IT(&UART2_Handler,(u8 *)aRxBuffer, RXBUFFERSIZE)!=HAL_OK)//一次处理完成之后,重新开启中断并设置RxXferCount为1
- // {
- // timeout++; //超时处理
- // if(timeout>maxDelay) break;
- // }
- }
- //串口2中断服务程序
- void USART2_IRQHandler(void)
- {
- u32 timeout=0;
- u32 maxDelay=0x1FFF;
- HAL_UART_IRQHandler(&UART2_Handler); //调用HAL库中断处理公用函数
-
- timeout=0;
- while (HAL_UART_GetState(&UART2_Handler)!=HAL_UART_STATE_READY)//等待就绪
- {
- timeout++;////超时处理
- if(timeout>maxDelay) break;
- }
- timeout=0;
- while(HAL_UART_Receive_IT(&UART2_Handler,(u8 *)aRxBuffer, RXBUFFERSIZE)!=HAL_OK)//一次处理完成之后,重新开启中断并设置RxXferCount为1
- {
- timeout++; //超时处理
- if(timeout>maxDelay) break;
- }
- }
入上面中断函数代码,为什么增加处理机制,就只能接收到两个字节,把中断处理机制去掉就能接收正常字节,还是不经意间调出来的,
有人遇到过吗?可能是什么问题?
|