打印
[STM32F4]

RS485运行一段时间后挂了

[复制链接]
903|39
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pangb|  楼主 | 2022-8-3 19:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现有主机和从机两个。主机单独运行485去读取两个从机的数据是完全没有问题的。(代码是量产产品上用的)
现在我加入了几个定时器在定时器中采集spi的数据。
运行一段时间后485就挂了

使用特权

评论回复
沙发
pengf| | 2022-8-3 19:33 | 只看该作者
多长时间

使用特权

评论回复
板凳
pangb|  楼主 | 2022-8-3 19:36 | 只看该作者
10几分钟左右

使用特权

评论回复
地板
xxrs| | 2022-8-3 19:39 | 只看该作者
网上查

使用特权

评论回复
5
pangb|  楼主 | 2022-8-3 19:41 | 只看该作者
利用其方法修改后确实运行时间长了一些 大概在半个小时到1个小时左右。还是会挂了

使用特权

评论回复
6
huangchui| | 2022-8-3 19:43 | 只看该作者
主程序和spi采集都没有挂

使用特权

评论回复
7
chuxh| | 2022-8-3 19:45 | 只看该作者
有没有出现互相竞争的情况

使用特权

评论回复
8
dengdc| | 2022-8-3 19:47 | 只看该作者
估计是中断中spi采集数据时间过长,导致串口接收溢出错误。
1, 清理溢出错误。
2.   把中断中耗时的操作放到主循环中

使用特权

评论回复
9
zhenykun| | 2022-8-3 19:49 | 只看该作者
我怀疑是spi程序那块的问题

使用特权

评论回复
10
juventus9554| | 2022-8-3 19:52 | 只看该作者

想办法记录日志,

使用特权

评论回复
11
asmine| | 2022-8-3 20:03 | 只看该作者
原因呢?是不是数组阻塞了?

使用特权

评论回复
12
llljh| | 2022-8-3 20:05 | 只看该作者
你是用IO口控制485的吧,这个问题是无正解的,明明IO控制485方向的逻辑是很简单清晰的,但就是运行一段儿时间之后方向控制引脚被莫名置为了输出状态,我的解决办法是在主程序里加一个状态查询,每隔100ms查询一下串口发送缓冲区中有没有数据

使用特权

评论回复
13
llljh| | 2022-8-3 20:07 | 只看该作者
如果没有数据,则强制置485方向控制引脚为输入状态

使用特权

评论回复
14
jiajs| | 2022-8-3 20:09 | 只看该作者
这个想法倒是很好!

使用特权

评论回复
15
wyjie| | 2022-8-3 20:12 | 只看该作者
不过我一向用的都是 自动控制收发引脚的隔离模块!效果会更好!

使用特权

评论回复
16
dengdc| | 2022-8-3 20:13 | 只看该作者
你是某宝买的吧

使用特权

评论回复
17
llljh| | 2022-8-3 20:17 | 只看该作者
你的接收的数据太快太多,导致接收出错,过载了,可以加个查询错误,然后清理接收缓存看看

使用特权

评论回复
18
renyaq| | 2022-8-3 20:19 | 只看该作者
硬件挂了?

使用特权

评论回复
19
pangb|  楼主 | 2022-8-3 20:21 | 只看该作者
通讯的可靠性 也还是一个头痛的问题, 比如硬件有干扰啥的  考虑的问题点就多了,  没传过去,得再传.

使用特权

评论回复
20
wyjie| | 2022-8-3 20:23 | 只看该作者
你首先看串口 是不是还有数据出来 其次再是看RS485差分信号 有没有

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

701

主题

7643

帖子

6

粉丝