STM32
直播中

毛萃

7年用户 890经验值
私信 关注
[问答]

STM32L051使用HAL库串口中断的疑问求解

使用STM32CUB生成原始代码,然后采用串口中断接收

L051有两个串口,串口1,串口2,以及一个低功耗串口

发现只有串口2可以正常中断发收

为了使能中断,都在while主循环之前调用HAL_UART_Receive_IT( huart2,(uint8_t *) value,1);

但串口1或者低功耗串口,调用这个函数时,程序就卡死在HAL_UART_Receive_IT这个函数中,跟踪进去发现是卡死在
/* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */

                SET_BIT(huart->Instance->CR3, USART_CR3_EIE);
       /* Enable the UART Parity Error interrupt and Data Register Not Empty interrupt */
    SET_BIT(huart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE);


这两句,

请教!

回帖(1)

雷友水

2024-4-8 15:17:51
楼主在测试的过程中,是不是在串口2接收后加了断点了?如果是,是因为断点导致的串口1接收数据溢出。需要重新初始化串口1解决这个问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分