kinni 发表于 2024-4-22 18:18:33

关于使用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")

期望大佬能帮我看一看,谢谢了

传说中的路过 发表于 2024-4-23 09:59:01

可能的原因: 485总线错乱了,同一时间有多个设备在发,导致你收到一堆乱的数据,导致了串口的ORE溢出错误



解决办法: 判断一下串口ORE溢出错误 并清除

butterflyspring 发表于 2024-4-25 10:13:18

HAL 库的结构被修改了,好多特殊条件的判断就少了。

所以只能在线调试看看了。
一方面看看状态寄存器是否异常,另一方面看看运行的逻辑是否异常。
页: [1]
查看完整版本: 关于使用STM32G030C8T6的串口收发过程中串口接收问题