STM32L051C8T6 LPUART + DMA + IDLE不定长接收遇到的问题只能printf一次
`
靠,中断函数忘加了。
``
/* USER CODE BEGIN Header /
/*
- @file stm32l0xx_it.c
- @brief Interrupt Service Routines.
- @attention
-
© Copyright (c) 2021 STMicroelectronics. - All rights reserved.
- This software component is licensed by ST under BSD 3-Clause license,
- the "License"; You may not use this file except in compliance with the
- License. You may obtain a copy of the License at:
-
opensource.org/licenses/BSD-3-Clause
/
/ USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
include "main.h"
include "stm32l0xx_it.h"
/* Private includes ----------------------------------------------------------/
/ USER CODE BEGIN Includes */
include "usart.h"
/* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------/
/ USER CODE BEGIN TD */
/* USER CODE END TD */
/* Private define ------------------------------------------------------------/
/ USER CODE BEGIN PD */
/* USER CODE END PD */
/* Private macro -------------------------------------------------------------/
/ USER CODE BEGIN PM */
/* USER CODE END PM */
/* Private variables ---------------------------------------------------------/
/ USER CODE BEGIN PV */
/* USER CODE END PV */
/* Private function prototypes -----------------------------------------------/
/ USER CODE BEGIN PFP */
/* USER CODE END PFP */
/* Private user code ---------------------------------------------------------/
/ USER CODE BEGIN 0 */
/* USER CODE END 0 */
/* External variables --------------------------------------------------------/
extern DMA_HandleTypeDef hdma_lpuart1_rx;
extern DMA_HandleTypeDef hdma_lpuart1_tx;
extern DMA_HandleTypeDef hdma_usart1_rx;
extern DMA_HandleTypeDef hdma_usart1_tx;
extern DMA_HandleTypeDef hdma_usart2_rx;
extern DMA_HandleTypeDef hdma_usart2_tx;
extern UART_HandleTypeDef huart1;
extern UART_HandleTypeDef huart2;
extern UART_HandleTypeDef hlpuart1;
/ USER CODE BEGIN EV */
/* USER CODE END EV */
//
/ Cortex-M0+ Processor Interruption and Exception Handlers /
//
/**
- @brief This function handles Non maskable interrupt.
/
void NMI_Handler(void)
{
/ USER CODE BEGIN NonMaskableInt_IRQn 0 */
/* USER CODE END NonMaskableInt_IRQn 0 /
/ USER CODE BEGIN NonMaskableInt_IRQn 1 */
/* USER CODE END NonMaskableInt_IRQn 1 */
}
/**
- @brief This function handles Hard fault interrupt.
/
void HardFault_Handler(void)
{
/ USER CODE BEGIN HardFault_IRQn 0 */
/* USER CODE END HardFault_IRQn 0 /
while (1)
{
/ USER CODE BEGIN W1_HardFault_IRQn 0 /
/ USER CODE END W1_HardFault_IRQn 0 */
}
}
/**
- @brief This function handles System service call via SWI instruction.
/
void SVC_Handler(void)
{
/ USER CODE BEGIN SVC_IRQn 0 */
/* USER CODE END SVC_IRQn 0 /
/ USER CODE BEGIN SVC_IRQn 1 */
/* USER CODE END SVC_IRQn 1 */
}
/**
- @brief This function handles Pendable request for system service.
/
void PendSV_Handler(void)
{
/ USER CODE BEGIN PendSV_IRQn 0 */
/* USER CODE END PendSV_IRQn 0 /
/ USER CODE BEGIN PendSV_IRQn 1 */
/* USER CODE END PendSV_IRQn 1 */
}
/**
- @brief This function handles System tick timer.
/
void SysTick_Handler(void)
{
/ USER CODE BEGIN SysTick_IRQn 0 */
/* USER CODE END SysTick_IRQn 0 /
HAL_IncTick();
/ USER CODE BEGIN SysTick_IRQn 1 */
/* USER CODE END SysTick_IRQn 1 */
}
//
/ STM32L0xx Peripheral Interrupt Handlers /
/ Add here the Interrupt Handlers for the used peripherals. /
/ For the available peripheral interrupt handler names, /
/ please refer to the startup file (startup_stm32l0xx.s). /
//
/**
- @brief This function handles DMA1 channel 2 and channel 3 interrupts.
/
void DMA1_Channel2_3_IRQHandler(void)
{
/ USER CODE BEGIN DMA1_Channel2_3_IRQn 0 */
/* USER CODE END DMA1_Channel2_3_IRQn 0 /
HAL_DMA_IRQHandler(&hdma_usart1_tx);
HAL_DMA_IRQHandler(&hdma_usart1_rx);
/ USER CODE BEGIN DMA1_Channel2_3_IRQn 1 */
/* USER CODE END DMA1_Channel2_3_IRQn 1 */
}
/**
- @brief This function handles DMA1 channel 4, channel 5, channel 6 and channel 7 interrupts.
/
void DMA1_Channel4_5_6_7_IRQHandler(void)
{
/ USER CODE BEGIN DMA1_Channel4_5_6_7_IRQn 0 */
/* USER CODE END DMA1_Channel4_5_6_7_IRQn 0 */
HAL_DMA_IRQHandler(&hdma_usart2_tx);
HAL_DMA_IRQHandler(&hdma_usart2_rx);
HAL_DMA_IRQHandler(&hdma_lpuart1_tx);
HAL_DMA_IRQHandler(&hdma_lpuart1_rx);
/* USER CODE BEGIN DMA1_Channel4_5_6_7_IRQn 1 */
/* USER CODE END DMA1_Channel4_5_6_7_IRQn 1 */
}
/**
- @brief This function handles USART1 global interrupt / USART1 wake-up interrupt through EXTI line 25.
/
void USART1_IRQHandler(void)
{
/ USER CODE BEGIN USART1_IRQn 0 /
UsartReceive_IDLE(&huart1);
/ USER CODE END USART1_IRQn 0 /
HAL_UART_IRQHandler(&huart1);
/ USER CODE BEGIN USART1_IRQn 1 */
/* USER CODE END USART1_IRQn 1 */
}
/**
- @brief This function handles USART2 global interrupt / USART2 wake-up interrupt through EXTI line 26.
/
void USART2_IRQHandler(void)
{
/ USER CODE BEGIN USART2_IRQn 0 /
UsartReceive_IDLE(&huart2);
/ USER CODE END USART2_IRQn 0 /
HAL_UART_IRQHandler(&huart2);
/ USER CODE BEGIN USART2_IRQn 1 */
/* USER CODE END USART2_IRQn 1 */
}
void LPUART1_IRQHandler(void)
{
/* USER CODE BEGIN LPUART1_IRQn 0 /
UsartReceive_IDLE(&hlpuart1);
/ USER CODE END LPUART1_IRQn 0 /
HAL_UART_IRQHandler(&hlpuart1);
/ USER CODE BEGIN LPUART1_IRQn 1 */
/* USER CODE END LPUART1_IRQn 1 */
}
/* USER CODE BEGIN 1 */
/* USER CODE END 1 /
/*********************** (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
![](https://images.cnblogs.com/cnblogs_com/xiaobo-Linux/736394/o_erweima.png)