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单片机的 串口卡死/无法收发的情况不出现或能够解决串口异常 串口崩溃快烦死了,一直解决不了,而且很难复现。 |
adc采集电压
关于使用STM32G030C8T6的串口收发过程中串口接收问题
STM32G0B1的CAN自动重发
用stm32cubeide生成的STM32G030F6P6代码只要一开中断,任何中断程序都会跑飞.
STM32G0B1CBT6 双Bank升级,运行Bank2上Flash不能写问题
有关STM32G0B1RET6芯片FLASH擦除问题
STM32G030烧录程序
Stm32G071 i2c slave配置问题
STM32G030 不能下载程序 0xFFFF0040
STM32G0是否支持trace?
出现这个问题应是串口数据处理不及时,导致产生了溢出。需要重新初始化串口进行处理。一般重新开接收中断是在回调函数中执行。
不知道你是怎么处理的,反正一般在回调函数中处理数据并重新开启接收,我这在F1和F4上貌似没见串口卡死过
可以用串口工具模拟通讯。如果低速率情况可以,高速率不行,那多半跟处理速度方式有关。
如果低速也不行,多半是处理方式原理不合适,调整一下即可。