Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
Modbus
FreeModeBus从机调试问题
发布于 2018-08-04 13:22:48 浏览:3401
订阅该版
我在调试FreeModbus从机的时候遇到Bytes Missing Error,如下图: ![1.png](/uploads/201808/04/131333rrlwlwfd8fcmlcz2.png) 但是查看通讯数据的时候数据有0x0003,0x0004,0x0005,0x0006,是我在从机里预设的值,好像读取是正确的呀,为什么会出现字节丢失错误呢? ![2.png](/uploads/201808/04/131334qywoewwvggkcywgg.png) 我配置的时候使用的是115200,数据位8位,无校验。更改波特率和校验位仍然出现该问题。 现在是没有头绪,哪位大神给点指点,感激不尽啊!!!
查看更多
10
个回答
默认排序
按发布时间排序
whj467467222
认证专家
2018-08-04
开源,分享,交流,共同进步
可以下载armink在guthub上的的例程看下,文件里面包含从机运行逻辑,单步看下问题出在哪里。使用env自动配置的没有问题的,但是有几点你注意一下,第一,shell和midbus不能一起用,第二串口配置的时候确认一下波特率之类的是不是都修改好了,我记得不止修改一处。你先再试试
yaomo718
2018-08-05
这家伙很懒,什么也没写!
昨天在王兄的建议下,根据 FreeModbus 从机分析图 对源码部分重新理解了一下,找到了数据发送和接收的函数部分,然后对数据的接收和发送跟踪了一下,发现数据正确。在下图中的两个代码处加断点,发现在第一个断点处暂停数据接收正确,第二处就异常了。 [attach]4921[/attach] [attach]4922[/attach] 这两个断点之间所做的动作为将485切换为接收模式,那么我猜测发生这个问题的原因是单片机未能在数据完全发送完就将485切换为接收模式,导致CRC校验部分的数据发送产生了异常。 我在485切换到接收模式前增加了一个延时 thread_delay(1),编译后再测试就和modbus poll通讯正常了。 [attach]4923[/attach] 据王兄说他在107和407上使用的时候并没有遇到我的问题,难道是429的主频高一些导致的运行到485切换状态时所花的时候还不够串口发送完成的时间?这只是一个猜想,准备后面抽空把429的主频降下来再测试一下还有没有这个问题。 另外,在485切换接收模式前加这么一个延时是否合理呢?是否应该有其他更好的办法?比如查询串口发送寄存器是否为空?
armink
2018-08-05
这家伙很懒,什么也没写!
在做 485 发送时,一定要保证数据完全发送出去,再切换收发模式。 很多 BSP 串口发送时,都只是往串口寄存器放了数据,并没有检查发送完成
yaomo718
2018-08-14
这家伙很懒,什么也没写!
>在做 485 发送时,一定要保证数据完全发送出去,再切换收发模式。 > >很多 BSP 串口发送时,都只是往串口寄存 ... --- 确实我所使用的stm32f429-apollo 的bsp里的串口发送没有检查数据是否发送完成就返回了,如图修改一下就可以了,不用加延时函数。 [attach]5275[/attach]
armink
2018-08-15
这家伙很懒,什么也没写!
>确实我所使用的stm32f429-apollo 的bsp里的串口发送没有检查数据是否发送完成就返回了,如图修改一下就可 ... --- 欢迎给 RT-Thread 提交 pr 哈
yaomo718
2018-08-15
这家伙很懒,什么也没写!
>欢迎给 RT-Thread 提交 pr 哈 --- FreeModbus V1.6 主机使用说明中所提到的 EasyDataManager 库有说明文档吗?我在你的github没有找到相关的使用说明,只能参考例程吗?
armink
2018-08-15
这家伙很懒,什么也没写!
>FreeModbus V1.6 主机使用说明中所提到的 EasyDataManager 库有说明文档吗?我在你的github没有找到相关的 ... --- 是的,按照例程先了解下它的功能吧
cyz13
2019-06-05
这家伙很懒,什么也没写!
>可以下载armink在guthub上的的例程看下,文件里面包含从机运行逻辑,单步看下问题出在哪里。使用env自动配 ... --- shell不能和modbus一起用是什么意思
zhangjun
2019-06-05
这家伙很懒,什么也没写!
>shell不能和modbus一起用是什么意思 --- 他这里估计是因为shell和modbus共用一个串口设备,如果是分开的那就没事
cyz13
2019-06-05
这家伙很懒,什么也没写!
>他这里估计是因为shell和modbus共用一个串口设备,如果是分开的那就没事 --- 嗯嗯
撰写答案
登录
注册新账号
关注者
0
被浏览
3.4k
关于作者
yaomo718
这家伙很懒,什么也没写!
提问
8
回答
83
被采纳
0
关注TA
发私信
相关问题
1
ModbusRTU协议栈漏发送最后一个字节
2
3.0 增加freemodbus,编译不过
3
RT_THREAD上面的串口MODBUSRTU为啥没功能码?
4
关于 freemodbus 里存在的一点问题分享
5
请教如何使用组件里的FreeMODBUS
6
求一个FreeModbus的从机测试程序
7
FreeModbus的从机调试说明(含测试程序)
8
rtt_freemodbus
9
freemodbus怎么配置到uart
10
FreeModbus的从机可以使用一个端口模拟多个从机吗?
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
2
RT-Thread 发布 EtherKit开源以太网硬件!
3
rt-thread使用cherryusb实现虚拟串口
4
《C++20 图形界面程序:速度与渲染效率的双重优化秘籍》
5
《原子操作:程序世界里的“最小魔法单位”解析》
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
ota在线升级
UART
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
at_device
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
张世争
8
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
KunYi
6
个答案
1
次被采纳
本月文章贡献
程序员阿伟
5
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部