From cb60354730cb887fa0ea98c3b0897f16a8127035 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Mon, 26 Aug 2024 17:43:00 +0800 Subject: [PATCH] update --- halport/stm32irq.c | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/halport/stm32irq.c b/halport/stm32irq.c index 8f4ecda..75d4193 100644 --- a/halport/stm32irq.c +++ b/halport/stm32irq.c @@ -60,7 +60,6 @@ void CAN1_TX_IRQHandler(void) { HAL_CAN_IRQHandler(&hcan1); } void CAN1_RX0_IRQHandler(void) { HAL_CAN_IRQHandler(&hcan1); } void CAN1_RX1_IRQHandler(void) { HAL_CAN_IRQHandler(&hcan1); } void CAN1_SCE_IRQHandler(void) { HAL_CAN_IRQHandler(&hcan1); } -// 定时器 void TIM1_TRG_COM_TIM11_IRQHandler(void) { if (htim11.Instance) HAL_TIM_IRQHandler(&htim11); @@ -72,8 +71,33 @@ void TIM6_DAC_IRQHandler(void) { void TIM7_IRQHandler(void) { if (htim7.Instance) HAL_TIM_IRQHandler(&htim7); } -// 串口 + void USART1_IRQHandler(void) { HAL_UART_IRQHandler(&huart1); } void USART2_IRQHandler(void) { HAL_UART_IRQHandler(&huart2); } void USART3_IRQHandler(void) { HAL_UART_IRQHandler(&huart3); } void UART4_IRQHandler(void) { HAL_UART_IRQHandler(&huart4); } + +/*********************************************************************************************************************** + * HAL IF * + ***********************************************************************************************************************/ + +void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) { // + huart->USR_DMARxSize = Size; +} +void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { + if (huart->USR_UartITRxing) { + if (huart->USR_UartITRxOff < huart->USR_UartITRxBufSize) { + huart->USR_UartITRxBuf[huart->USR_UartITRxOff] = huart->USR_UartITRxBufCache; + huart->USR_UartITRxOff++; + } else { + } + huart->USR_UartITLastRxTicket = HAL_GetTick(); + HAL_UART_Receive_IT(huart, &huart->USR_UartITRxBufCache, 1); + } +} + +void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) { + if (huart->USR_UartITRxing) { + HAL_UART_Receive_IT(huart, &huart->USR_UartITRxBufCache, 1); + } +}