STM32
直播中

名士流

9年用户 984经验值
私信 关注
[问答]

STM32G070串口卡死怎么解决?

mcu:STM32G070RB,驱动库:hal版本1.6.1
目前会遇到串口2与外部芯片的通讯异常,异常表现为串口2不能收发数据了
串口2的配置方式是CubeMX配置的
接收数据方法:HAL_UART_Receive_IT( huart2, Uart2RX_Data,1);//中断方式,1字节一次获取数据
发送数据方法:HAL_UART_Transmit_IT( huart2,u8_TxBuf,len);

我已经在中断代码中增加了if( HAL_UART_Receive_IT( huart2,  Uart2RX_Data, 1) != HAL_OK),来判断是否开启中断完成,并且记录下来,再进行串口初始化(代码不在中断中),代码如下
huart2.Lock = HAL_UNLOCKED;
MX_USART2_UART_Init();//重新初始化串口
HAL_UART_Receive_IT( huart2, Uart2RX_Data,1);//继续接收数据


请教一下,如何才能保证G0单片机的 串口卡死/无法收发的情况不出现或能够解决串口异常
串口崩溃快烦死了,一直解决不了,而且很难复现。


回帖(1)

杨平

2024-3-21 13:55:52
出现这个问题应是串口数据处理不及时,导致产生了溢出。需要重新初始化串口进行处理。一般重新开接收中断是在回调函数中执行。
举报

更多回帖

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