你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32L051使用HAL库串口中断奇怪问题

[复制链接]
wx威龙 提问时间:2021-3-4 13:05 /
使用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 发布时间:2021-3-4 13:05

举报

1个回答
废鱼 回答时间:2021-3-4 15:49:58
楼主在测试的过程中,是不是在串口2接收后加了断点了?如果是,是因为断点导致的串口1接收数据溢出。需要重新初始化串口1解决这个问题。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版