关于使用STM32G030C8T6的串口收发过程中串口接收问题
目前使用STM32G030的芯片做了一个485接收从机,由主机STM32F407的芯片发送数据去询问从机当前数据,但是在使用过程中遇见了一个问题,从机在发送数据时,前面所有的数据正常,突然从机发送的数据出现问题后,从机的串口只能接收到主机发送的数据帧中的第一个字节。具体如下面的图所示!(data/attachment/forum/202404/22/181128gfzetgvoegyrff7e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
这里我用串口助手模拟主机询问从机数据,当从机回应的数据出现问题后,从机的缓冲区只能接收数据帧的第一个字节数据如图
!(data/attachment/forum/202404/22/181404u9c8els5a8mzm7g8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
!(data/attachment/forum/202404/22/181456ab263ppec6bbhup9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
下面是我串口的配置
!(data/attachment/forum/202404/22/181707t2yq4v7v415a5qz2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
以及中断函数
!(data/attachment/forum/202404/22/181802asadd9auasvmdgsa.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
期望大佬能帮我看一看,谢谢了
可能的原因: 485总线错乱了,同一时间有多个设备在发,导致你收到一堆乱的数据,导致了串口的ORE溢出错误
解决办法: 判断一下串口ORE溢出错误 并清除
HAL 库的结构被修改了,好多特殊条件的判断就少了。
所以只能在线调试看看了。
一方面看看状态寄存器是否异常,另一方面看看运行的逻辑是否异常。
页:
[1]