修改中断函数:
void USART1_IRQHandler(void)
{
/* USER CODE BEGIN USART1_IRQn 0 */
if(__HAL_UART_GET_FLAG(&huart1, UART_FLAG_RTOF))
{
__HAL_UART_CLEAR_FLAG(&huart1, UART_CLEAR_RTOF);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, GPIO_PIN_SET);
for(int i = 0; i < 8; i ++)
{
if(!__HAL_UART_GET_FLAG(&huart1, UART_FLAG_RXFNE))
{
break;
}
rxBuf[rxCnt++] = USART1->RDR;
}
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, GPIO_PIN_RESET);
}
if(__HAL_UART_GET_FLAG(&huart1, UART_FLAG_RXFT))
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_SET);
for(int i = 0; i < 8; i ++)
{
if(!__HAL_UART_GET_FLAG(&huart1, UART_FLAG_RXFNE))
{
break;
}
rxBuf[rxCnt++] = USART1->RDR;
}
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_RESET);
}
/* USER CODE END USART1_IRQn 0 */
HAL_UART_IRQHandler(&huart1);
/* USER CODE BEGIN USART1_IRQn 1 */
/* USER CODE END USART1_IRQn 1 */
}
|