• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32写MODBUS时如何提高送数据的准确率

myrain009 2017-11-09 浏览量:881
最近用STM32F103写的modbus通讯协议,在波特率比较高的时候,总是会出现数据丢包现象,而且在uart传送单细节时(十六进制发送,十六进制接受),也有传送错误的数据出现。
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • ModBus数据帧后面是有CRC校捡的。如果波特率高与某个值才经常出错,看看是不是通讯线过长或者质量问题。
    • 发布于 2017-11-09
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了 :1SFA611605R1111是MCBH-11类的订购料号 回复

其他答案 数量:11
  • 串口波特率高 确实容易出错,可以使用数据传输+校验的方式
    • 发布于2017-11-09
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :是LM的 回复

  • 考虑加点等待,加上校验。
    • 发布于2017-11-09
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :只有Rohs认证https://www.mouser.com/catalog/additional/Murata_MLCC_SMD_RoHS%20Certificate.pdf 回复

  • 可能是硬件电路有问题,或者波特率太高,另外周围有没有强干扰。。串口是存在一定的误码率,不过误码率通常是非常低的,通常发1MB数据也不一定有一个错误字节。
    • 发布于2017-11-09
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  : 回复

  • 转成232,ttl容纳的速度不是很高
    • 发布于2017-11-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 你使用的是多大的波特率?从电路上查一下布线是不是有干扰。
    • 发布于2017-11-10
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :https://rocelec.widen.net/view/pdf/bcb4syidrx/CYPR-S-A0003716773-1.pdf?t.download=true&u=5oefqw 回复

电子老工程师 回复了  :是的 回复

  • modbus本身就是CRC的检验的,错误的帧数据是不被接受的。
    • 发布于2017-11-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 传输出错,应该 是速度太快的原因,很少情况下是干扰的问题
    • 发布于2017-11-14
    • 举报
    • 评论 0
    • 0
    • 0

  • modbus都带校验的,而且串口也可以用校验位
    • 发布于2017-11-16
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :封装:SOIC-8 208-mil 回复

  • 软件上,用最低的传输速率.

    这个关键还是硬件的问题.屏蔽,驱动能力.

    • 发布于2017-11-17
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :没有D4的解释说明 回复

  • 可以扩展uart的一些硬件流控接口,降低错误
    • 发布于2017-11-19
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :http://www.yenji-esd.com/0/www.yenji-esd.com/upload/2019/10/17/2019101715957551.pdf 回复

相关问题

问题达人换一批

STM32写MODBUS时如何提高送数据的准确率