打印

STM32 用free modbus,多从机会出现串口只发5个字节数据的情况。

[复制链接]
982|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mbutterfly|  楼主 | 2024-6-4 12:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
mbutterfly|  楼主 | 2024-6-5 10:31 | 只看该作者
问题可能找到了,哎,如果是真的,就太搞笑了。

使用特权

评论回复
板凳
储小勇_526| | 2024-6-5 10:56 | 只看该作者
分享下,让别人少走弯路。

使用特权

评论回复
地板
mbutterfly|  楼主 | 2024-6-5 11:50 | 只看该作者
储小勇_526 发表于 2024-6-5 10:56
分享下,让别人少走弯路。

还在验证中。几个小时不出错,不一定就好了。

使用特权

评论回复
5
mbutterfly|  楼主 | 2024-6-5 14:47 | 只看该作者
储小勇_526 发表于 2024-6-5 10:56
分享下,让别人少走弯路。

本来以为堆栈加倍,是改善了问题呢,但是后续程序添加进循环后,还是出现这个问题。

使用特权

评论回复
6
mbutterfly|  楼主 | 2024-6-5 15:22 | 只看该作者
难道是主程序里的循环程序太长了吗?执行一次要几百毫秒。MODBUS是1秒读一次。两个从机。 如果一个从机循环里程序少,就都不会出现问题。

使用特权

评论回复
7
储小勇_526| | 2024-6-5 17:11 | 只看该作者
mbutterfly 发表于 2024-6-5 15:22
难道是主程序里的循环程序太长了吗?执行一次要几百毫秒。MODBUS是1秒读一次。两个从机。 如果一个从机循环 ...

我最近也开发了Modbus TCP/IP,不过我负责的是内部总线CAN部分,用的freeRTOS,没出现类似的问题。

使用特权

评论回复
8
mbutterfly|  楼主 | 2024-6-6 08:16 | 只看该作者
储小勇_526 发表于 2024-6-5 17:11
我最近也开发了Modbus TCP/IP,不过我负责的是内部总线CAN部分,用的freeRTOS,没出现类似的问题。 ...

多个从机吗?一次发送多少字节?

使用特权

评论回复
9
mbutterfly|  楼主 | 2024-6-6 08:17 | 只看该作者
储小勇_526 发表于 2024-6-5 17:11
我最近也开发了Modbus TCP/IP,不过我负责的是内部总线CAN部分,用的freeRTOS,没出现类似的问题。 ...

几个从机,一次发送多少字节?

使用特权

评论回复
10
32021724| | 2024-6-6 08:51 | 只看该作者
走的啥总线,485还是纯uart?

使用特权

评论回复
11
mbutterfly|  楼主 | 2024-6-7 16:20 | 只看该作者
32021724 发表于 2024-6-6 08:51
走的啥总线,485还是纯uart?

STM32的UART口,接的485芯片SP3485EN,之后板子差不多是走差分线吧,板子上线路很短。之后是双绞线,3个板子的从站最后并到一起。

使用特权

评论回复
12
呐咯密密| | 2024-6-12 10:07 | 只看该作者
你是串口中断接收从机数据吗?是第一次发送数据出错还是接收从机数据再次发送出错

使用特权

评论回复
13
mbutterfly|  楼主 | 2024-6-14 09:47 | 只看该作者
呐咯密密 发表于 2024-6-12 10:07
你是串口中断接收从机数据吗?是第一次发送数据出错还是接收从机数据再次发送出错 ...

数据发不全的原因,最后发现,至少有一部分原因是因为上位机软件用的LABVIEW,遇到0x0A就截止不收了。这种情况用MODBUS POLL就能接收。至于MODBUS POLL接收不全,为什么只接收5个字节,不多不少,估计还是MODBUS POLL和硬件匹配的问题,据说换个USB转485的线就会好。

使用特权

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

本版积分规则

56

主题

4175

帖子

10

粉丝