OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2197|回复: 1

大佬们,我用stm32cubemx生成的代码,用dma写的串口数据不定长接收,但是无法进入空闲中断是怎么回事呀,请求大佬支援

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2023-3-26
在线时间
3 小时
发表于 2023-8-15 17:54:37 | 显示全部楼层 |阅读模式
1金钱
void USART2_IRQHandler(void)
{
  /* USER CODE BEGIN USART2_IRQn 0 */
       
        if(__HAL_UART_GET_FLAG(&huart2,UART_IT_IDLE) != RESET)
        {
               
                __HAL_UART_CLEAR_IDLEFLAG(&huart2);
               
                HAL_UART_DMAStop(&huart2);
               
                uint8_t len = 3 - __HAL_DMA_GET_COUNTER(huart2.hdmarx);
               
                HAL_UART_Transmit_DMA(&huart2,data,len);
               
                HAL_UART_Receive_DMA(&huart2,data,3);
        }
  /* USER CODE END USART2_IRQn 0 */
  HAL_UART_IRQHandler(&huart2);
  /* USER CODE BEGIN USART2_IRQn 1 */

  /* USER CODE END USART2_IRQn 1 */
}
int main(void)
{
  /* USER CODE BEGIN 1 */
       
       

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_DMA_Init();
  MX_USART2_UART_Init();
  MX_USB_Device_Init();
  MX_TIM2_Init();
  MX_USART1_UART_Init();
  MX_USART3_UART_Init();
  /* USER CODE BEGIN 2 */
        HAL_UART_Receive_DMA(&huart2,data,3);

  /* USER CODE END 2 */

  /* Call init function for freertos objects (in freertos.c) */
  MX_FREERTOS_Init();
  /* Start scheduler */
  osKernelStart();

  /* We should never get here as control is now taken by the scheduler */
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}



9810eba02fd58f0b46316bc7093adac.png
86652ce7215cb88abc4db805fd46238.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

5

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2957
金钱
2957
注册时间
2020-3-6
在线时间
214 小时
发表于 2023-9-25 09:44:52 | 显示全部楼层
本帖最后由 kfdn5555 于 2023-9-25 09:47 编辑

STM的空闲中断在CUBEMX配置的时候不会自动帮你打开,需要你自己初始化加入进去,
MX_USART2_UART_Init();
__HAL_UART_ENABLE_IT(&huart2, UART_IT_IDLE);//加入空闲中断初始化
HAL_UART_Receive_DMA(&huart2,data,3);
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 07:10

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表