搜索
查看: 652|回复: 0

[讨论] STM32L476RG UART_IT_IDLE 一打开就卡死的问题

[复制链接]

该用户从未签到

2

主题

8

帖子

0

蝴蝶豆

初级会员

最后登录
2021-6-2
发表于 2020-4-10 17:20:05 | 显示全部楼层 |阅读模式
最近再调试STM32L476RG 串口,使用串口2,在验证DMA空闲中断的时候,
发现初始化的时候    __HAL_UART_ENABLE_IT(&huart2, UART_IT_IDLE);        //使能idle中断
一执行这一行代码,程序就不能运行下去,卡在此位置,
验证步骤:
HSE外部晶振都是8M


demo1

stm32cubemx  生成一个demo 仅使用串口4,用来printf输出,串口2验证dma 接收。为了和F103对比  同样的设置时钟pll 72M


初始化的时候 操作

    printf("*****init end ****** \n");
        
#ifdef TESTIUART2DMA

    __HAL_UART_ENABLE_IT(&huart2, UART_IT_IDLE);        //使能idle中断  卡死
    HAL_UART_Receive_DMA(&huart2,UART2_RX_BUF,RECEIVELEN);  //打开DMA接收,数据存入rx_buffer数组中。
    printf("*****init end 222222222****** \n");
#else
    HAL_UART_Receive_IT(&huart2,&uart2rx_buffer,1);    // 重新使能串口1接收中断
    __HAL_UART_DISABLE_IT(&huart2,UART_IT_RXNE);

#endif
  /* USER CODE END 2 */

为了对比原因,用stm32f103ret6 板子 stm32cubemx新建了一个同样简单的demo  晶振 pll 72M

串口1 作为printf 串口2 用来验证dma接收,

F103没有任何问题 ,可以正常运行 和接收,

请问有人遇到类似问题吗,谢谢。






回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-28 07:41 , Processed in 1.138949 second(s), 29 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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