找回密码
 立即注册
楼主: qepuemc

485通信错误用STC单片机和485芯片做USB转串口有错误

[复制链接]
  • 打卡等级:偶尔看看II
  • 打卡总天数:25
  • 最近打卡:2025-10-13 00:07:05

16

主题

142

回帖

1128

积分

金牌会员

积分
1128
发表于 5 天前 | 显示全部楼层
没有数据乱码,就是分包的问题,加大串口接收软件的超时时间可勉强解决。

根本原因是程序问题,发送字节之间或接收字节之间有不确定的间隔时间,
网上买的USB转串口是采用专用硬件芯片,是实时处理的,发送时字节是连续的,接收的字节也立即上传到电脑端。
你做的这个,程序处理有很多查询操作,中断有延时,还有缓冲区来回复制,没有双缓冲。因此字节流是间断的。
字节之间延时稍微一大,就被判定为分包结束了。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:530
  • 最近打卡:2025-10-13 07:41:49

50

主题

388

回帖

590

积分

高级会员

积分
590
发表于 4 天前 | 显示全部楼层
666.png

这个是两个买的。同样有问题。所以说这个还是硬件有问题。我想到一个方法不过还没有测试。如果测试成功。这个问题就算是真正解决了。
以前就是因为看到网上买的也是这样的问题。所以就认为有这个问题。其实整好了是没有的。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:529
  • 最近打卡:2025-10-11 08:58:15
已绑定手机

47

主题

2255

回帖

7945

积分

论坛元老

积分
7945
发表于 4 天前 | 显示全部楼层
截图202510090920453480.jpg

串口工具上面一般都有超时时间可以设置,两个数据之间间隔时间超过这个时间就会分行显示:
截图202510090926391816.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:530
  • 最近打卡:2025-10-13 07:41:49

50

主题

388

回帖

590

积分

高级会员

积分
590
发表于 前天 10:17 来自手机 | 显示全部楼层
乘风飞扬 发表于 2025-10-9 09:27
串口工具上面一般都有超时时间可以设置,两个数据之间间隔时间超过这个时间就会分行显示:
...

非常非常感谢你的回复。但是事情远远没有这么简单
第一件事就是论响应时间。单片机的响应时间,有时候或者说大多数时候可以搞到一毫秒之内。当然,这样可能要建立在波特率在嗯9600或者115200的时候,或者说115200的时候会更加真实。
我试过用stc的官方程序,然后做了修改之后嗯,会有这个效果,也就是说串口工具发过去会瞬间发回来。但是这是在USB转ttl的操作下实现的。如果是用USB,转485再去到485芯片,再去到stc单片机,目前我用的这个电路会出问题。问题的表现大约就是,有的时候会回传比较慢,如果速度快了,就会乱码。这个乱码的原因,一是怀疑485芯片,后来我觉得不是485芯片的问题。现在想来就是程序的问题。在程序中收和发没有有效的间隔开来,导致了另一端接收错误,或者说单片机接收错误,然后再回传回来就是错的。之前我整的这个这方面的通讯一直出问题,我感觉也是这个原因。
也就基本上验证了。官方历程中给的例子简单的测试是没有问题的。但是经过再多一点的测试不行。简单的测试就是直接USB转ttl到单片机没有问题。这个时候的解决思路可能就是要把这个程序再搞得复杂一些,比如必须在串口收发的时候,配置dma。虽然我只知道dma这三个字母,但不明白它的概念。但是我想说的就是这些,谢谢
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:530
  • 最近打卡:2025-10-13 07:41:49

50

主题

388

回帖

590

积分

高级会员

积分
590
发表于 昨天 21:15 | 显示全部楼层
现在我已经基本确定,串口通信做的不好就是因为程序的问题。可是 我还找不到解决的办法。我说的程序的问题说的就是什么也不改的程序。
001.png
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:530
  • 最近打卡:2025-10-13 07:41:49

50

主题

388

回帖

590

积分

高级会员

积分
590
发表于 昨天 21:42 | 显示全部楼层
可能有人看出来我做了什么。我要说的是。这说明的就是程序有问题。

222.png
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:206
  • 最近打卡:2025-10-13 01:10:06

786

主题

1万

回帖

1万

积分

管理员

积分
19685
发表于 昨天 22:12 | 显示全部楼层
RS485通信,一般不用 115200bps,
你实际可能 38400bps以下就足够了.


下图的自动切换收发电路,波特率高不了;
你从 9600开始往上测试
截图202510122213188440.jpg




回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-10-13 08:03 , Processed in 0.127906 second(s), 80 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表