|
习惯了F103的标准库,所以看HAL库的时候总有很多疑问。
我的问题是在中断函数里面没有看到类似于标准库里面的清中断标志的动作,是清中断动作被隐藏在哪里了吗,还是不需要清中断了。
大神们指点一下。
- void USART1_IRQHandler(void)
- {
- u32 timeout=0;
- #if SYSTEM_SUPPORT_OS //使用OS
- OSIntEnter();
- #endif
-
- HAL_UART_IRQHandler(&UART1_Handler); //调用HAL库中断处理公用函数
-
- timeout=0;
- while (HAL_UART_GetState(&UART1_Handler) != HAL_UART_STATE_READY)//等待就绪
- {
- timeout++;////超时处理
- if(timeout>HAL_MAX_DELAY) break;
- }
-
- timeout=0;
- while(HAL_UART_Receive_IT(&UART1_Handler, (u8 *)aRxBuffer, RXBUFFERSIZE) != HAL_OK)//一次处理完成之后,重新开启中断并设置RxXferCount为1
- {
- timeout++; //超时处理
- if(timeout>HAL_MAX_DELAY) break;
- }
- #if SYSTEM_SUPPORT_OS //使用OS
- OSIntExit();
- #endif
- }
- #endif
复制代码 |
|