zoukankan      html  css  js  c++  java
  • 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****/

  • 相关阅读:
    Linux命令行和Shell高效率使用方法
    PHP导出word,CVS,PDF
    PHP的CLI综合
    [PHP]算法-二叉树中和为某一值的路径的PHP实现
    [PHP]算法- 判断是否为二叉搜索树的后序遍历序列的PHP实现
    [PHP]算法- 二叉树的深度的PHP实现
    [PHP] 算法-镜像二叉树的PHP实现
    [PHP] 算法-二叉树的子结构判断的PHP实现
    [PHP] 算法-邻接矩阵图的广度和深度优先遍历的PHP实现
    [PHP] 算法-根据前序和中序遍历结果重建二叉树的PHP实现
  • 原文地址:https://www.cnblogs.com/zhaocundang/p/15012155.html
Copyright © 2011-2022 走看看