打印
[STM32F1]

485方向脚导致卡死

[复制链接]
514|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
MAX485+STM32F103。

主机设备数据量偶尔会很大且无间隔。当从机设备回复的时候方向脚置为发送使能,然后启动发送,发送完成进入中断函数将方向脚改为接收使能。但是由于主机设备数据很大,会发生数据碰撞,从而导致从机无法进入发送完成中断,从而导致方向脚无法翻转为接收,从而导致接收中断无法再触发。

使用特权

评论回复
沙发
supernan| | 2022-12-4 13:15 | 只看该作者

还有什么现象?能再详细描述下吗?

使用特权

评论回复
板凳
huangchui|  楼主 | 2022-12-4 13:17 | 只看该作者
我目前在应用层加了很多判断条件,能够降低触发的概率,但是仍会有极低的概率触发。

使用特权

评论回复
地板
llljh| | 2022-12-4 13:19 | 只看该作者
请教应该怎样处理方向脚的编程,从而从根本上解决这个问题。

使用特权

评论回复
5
llljh| | 2022-12-4 13:21 | 只看该作者
再就是为什么485总线的数据碰撞会导致uart发送时无法进入中断。

使用特权

评论回复
6
xxrs| | 2022-12-4 13:25 | 只看该作者
我猜测大概率是一直在串口中断里面

使用特权

评论回复
7
happy_10| | 2022-12-4 13:27 | 只看该作者
应该是没有用modbus

使用特权

评论回复
8
chenho| | 2022-12-4 13:29 | 只看该作者
只是单纯的双方收发数据

使用特权

评论回复
9
lizye| | 2022-12-4 13:33 | 只看该作者
上modbus就好了。

使用特权

评论回复
10
jiaxw| | 2022-12-4 13:34 | 只看该作者
你的意思是在发一串数据的中间使能了接收且收到了数据?

使用特权

评论回复
11
jiajs| | 2022-12-4 13:37 | 只看该作者
接收数据时清除了发送完成中断标志?那就是接收程序的问题了.

使用特权

评论回复
12
chuxh| | 2022-12-4 13:39 | 只看该作者
一般也不能这样搞啊,要发完一帧之后再使能接收啊.

使用特权

评论回复
13
pengf| | 2022-12-4 13:44 | 只看该作者
或者用硬件:

使用特权

评论回复
14
supernan| | 2022-12-4 13:46 | 只看该作者
电容整小一点

使用特权

评论回复
15
zhenykun| | 2022-12-4 13:48 | 只看该作者
就是modbus 但是各家程序对于时序处理不严谨导致的  目前主机没办法改  让我的从机改。

使用特权

评论回复
16
SantaBunny| | 2022-12-6 13:10 | 只看该作者
大概率是一直在串口中断里面

使用特权

评论回复
17
tpgf| | 2023-1-4 14:41 | 只看该作者
为什么会无间隔呢 这样会导致数据卡死

使用特权

评论回复
18
wowu| | 2023-1-4 14:49 | 只看该作者
及时数据的波特率比较慢 也需要在数据包之间加延时

使用特权

评论回复
19
xiaoqizi| | 2023-1-4 14:59 | 只看该作者
如果不能改主机程序的话  那么对从机的压力就太大了

使用特权

评论回复
20
木木guainv| | 2023-1-4 15:10 | 只看该作者
huangchui 发表于 2022-12-4 13:17
我目前在应用层加了很多判断条件,能够降低触发的概率,但是仍会有极低的概率触发。
...

判定条件越是负责  执行效率就越低啊

使用特权

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

本版积分规则

918

主题

12323

帖子

4

粉丝