打印
[STM32F4]

RS485运行一段时间后挂了

[复制链接]
1174|28
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pangb|  楼主 | 2020-6-21 20:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 pangb 于 2020-6-21 20:28 编辑

现有主机和从机两个。主机单独运行485去读取两个从机的数据是完全没有问题的。(代码是量产产品上用的)
现在我加入了几个定时器在定时器中采集spi的数据。
运行一段时间后485就挂了

使用特权

评论回复
沙发
liuzaiy| | 2020-6-21 20:28 | 只看该作者
多长时间

使用特权

评论回复
板凳
pangb|  楼主 | 2020-6-21 20:31 | 只看该作者
10几分钟左右

使用特权

评论回复
地板
kangzj| | 2020-6-21 20:34 | 只看该作者
网上查

使用特权

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

使用特权

评论回复
6
yufe| | 2020-6-21 20:46 | 只看该作者
主程序和spi采集都没有挂

使用特权

评论回复
7
wangzsa| | 2020-6-21 20:52 | 只看该作者
有没有出现互相竞争的情况

使用特权

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

使用特权

评论回复
9
wenfen| | 2020-6-21 20:58 | 只看该作者
我怀疑是spi程序那块的问题

使用特权

评论回复
10
chenho| | 2020-6-21 21:02 | 只看该作者
想办法记录日志,

使用特权

评论回复
11
mmuuss586| | 2020-6-22 09:34 | 只看该作者
加新的功能不行了,那就是程序逻辑哪里问题

使用特权

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

使用特权

评论回复
13
東南博士| | 2020-6-23 16:10 | 只看该作者
taobaofarmer 发表于 2020-6-22 13:12
这个问题我N年前就遇到了,你是用IO口控制485的吧,这个问题是无正解的,明明IO控制485方向的逻辑是很简单 ...

还有这种骚操作啊?

这个想法倒是很好!

不过我一向用的都是 自动控制收发引脚的隔离模块!效果会更好!

使用特权

评论回复
14
taobaofarmer| | 2020-6-24 10:38 | 只看该作者
你是某宝买的吧

使用特权

评论回复
15
llljh| | 2020-6-26 09:37 | 只看该作者
你的接收的数据太快太多,导致接收出错,过载了,可以加个查询错误,然后清理接收缓存看看

使用特权

评论回复
16
renyaq| | 2020-6-26 09:40 | 只看该作者
硬件挂了?

使用特权

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

使用特权

评论回复
18
kangzj| | 2020-6-26 09:46 | 只看该作者
你首先看串口 是不是还有数据出来 其次再是看RS485差分信号 有没有

使用特权

评论回复
19
langgq| | 2020-6-26 09:51 | 只看该作者
程序不严谨吧

使用特权

评论回复
20
pangb|  楼主 | 2020-6-26 09:54 | 只看该作者
调试发现是485上数据一直有的,只是接收到的错误帧,不知道为什么没有进入判断的条件重新接收数据,加了几个判断条件,现在可以了

使用特权

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

本版积分规则

701

主题

7643

帖子

6

粉丝