10149|26

37

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

单片机485电路接收数据不正确问题 [复制链接]

 
  新手求指导,最近在做一个单片机485通信电路,已测试过单片机发送数据是没问题的,不发送数据时485使能端也置为低电平了。但是单片机在接收数据时数据不正确时怎么回事?
  已测试过没问题的:串口1发数据到485电路---485转串口  OK
                               接收串口1数据---单片机串口2           OK
                               串口转485发送数据---485电路---485电路串口侧   OK
                     但是:串口转485发送数据---485电路---485电路串口侧---单片机串口1---单片机串口2,这样数据就会出错,开头跟结尾是正确的
以上测试都是用串口调试助手调的,按道理来说软件接收应该没问题的,现在就是打算做485电路--单片机串口通信,是不是有干扰什么的,分析了一天不知道问题出在哪,希望各位大神指教小弟。。。

微信图片_20180125202601.jpg (138.67 KB, 下载次数: 0)

微信图片_20180125202601.jpg
此帖出自51单片机论坛

最新回复

同意,楼主要不要解释一下?  详情 回复 发表于 2018-1-29 08:46
点赞 关注
 

回复
举报

37

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
已测试过发送数据没问题,是不是硬件设计问题呀
此帖出自51单片机论坛
 
 
 

回复

37

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
今天调不完,只能明天再做了
此帖出自51单片机论坛
 
 
 

回复

1万

帖子

139

TA的资源

版主

4
 
楼主的描述繁琐而欠缺精确性,看着真累。而且,数据上行、下行可不是串口1、串口2,对应的只是收和发通路而已。
你的意思是不是PC经由RS232与MCU通迅,正常。PC经由232转485再转回232自发自收,正常。只是通过485后与MCU通迅不正常且仅中间的数据出错?如是,那只有一种可能,你的485接口片在通迅过程中的收发控制逻辑有问题。如非,正确且完整的描述你的问题。
此帖出自51单片机论坛
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

回复

37

帖子

0

TA的资源

一粒金砂(中级)

5
 
chunyang 发表于 2018-1-25 21:47
楼主的描述繁琐而欠缺精确性,看着真累。而且,数据上行、下行可不是串口1、串口2,对应的只是收和发通路而 ...

刚步入社会工作,描述不清,很抱歉。。您描述得很正确,是这样的意思。我现在485芯片使能端直接接地,就是只保持在接收状态,可以这样理解吗?这样接收的数据还是会出错,实在分析不出原因了,请指教指教...
此帖出自51单片机论坛

点评

485只保持接收态那成了单向的,还怎么双向通迅呢?  详情 回复 发表于 2018-1-26 11:07
 
 
 

回复

119

帖子

1

TA的资源

一粒金砂(中级)

6
 
DE端低为接受状态对的,如果数据还不对,先检查下硬件连线,A+, B-不需要交叉,然后软件上检查下串口的设置是否匹配,先单发一个数据,看看是否异常。
此帖出自51单片机论坛
 
 
 

回复

327

帖子

1

TA的资源

纯净的硅(初级)

7
 
这位小兄弟,跟你说一个我在工作生涯中遇到过的一个问题:我们当时也是做一个485半双工通信,用电脑串口做模拟测试的时候怎么测都是正常,但是一旦接入客户的收发终端后数据就变为乱码。当时试过很多办法调低波特率、485电路做隔离,结果都是徒劳无功。实在没辙了最后听一个过来人建议有可能是客户终端的485设备接地不良导致对地有一个很高的共模电压,解决办法就是把客户的设备接地或把我们双方的设备地短路,最后才终于解决了这个问题。
此帖出自51单片机论坛

点评

嗯,受指教了  详情 回复 发表于 2018-1-26 14:59
高共模电压会影响所有数据,出错位置是随机(干扰还不够强)或全部出错(共模电压足够高),不会是头尾对中间错。而且,楼主未必在工业现场。  详情 回复 发表于 2018-1-26 11:10
 
个人签名模电临时工
 
 

回复

1万

帖子

139

TA的资源

版主

8
 
黎小宏 发表于 2018-1-26 08:24
刚步入社会工作,描述不清,很抱歉。。您描述得很正确,是这样的意思。我现在485芯片使能端直接接地,就 ...

485只保持接收态那成了单向的,还怎么双向通迅呢?
此帖出自51单片机论坛
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

回复

1万

帖子

139

TA的资源

版主

9
 
shipeng 发表于 2018-1-26 09:25
这位小兄弟,跟你说一个我在工作生涯中遇到过的一个问题:我们当时也是做一个485半双工通信,用电脑串口做 ...

高共模电压会影响所有数据,出错位置是随机(干扰还不够强)或全部出错(共模电压足够高),不会是头尾对中间错。而且,楼主未必在工业现场。
此帖出自51单片机论坛

点评

测试发现数据位数不变,出错的字节变成0x00的概率比较大  详情 回复 发表于 2018-1-26 14:10
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

回复

37

帖子

0

TA的资源

一粒金砂(中级)

10
 
chunyang 发表于 2018-1-26 11:07
485只保持接收态那成了单向的,还怎么双向通迅呢?

不好意思上午开会没时间调试,因为我原先测试过发送数据是没问题的,现在只是测试接收数据,我下午回来再根据各位的建议来调试,谢谢大家了
此帖出自51单片机论坛
 
 
 

回复

37

帖子

0

TA的资源

一粒金砂(中级)

11
 
已测试单字节发送是没问题的,多字节发送只有头字节正确,尾字节也偶尔会不对。我
此帖出自51单片机论坛

点评

楼主是在实验室的环境测试的  详情 回复 发表于 2018-1-26 14:04
 
 
 

回复

37

帖子

0

TA的资源

一粒金砂(中级)

12
 
黎小宏 发表于 2018-1-26 14:04
已测试单字节发送是没问题的,多字节发送只有头字节正确,尾字节也偶尔会不对。我

楼主是在实验室的环境测试的
此帖出自51单片机论坛
 
 
 

回复

37

帖子

0

TA的资源

一粒金砂(中级)

13
 
chunyang 发表于 2018-1-26 11:10
高共模电压会影响所有数据,出错位置是随机(干扰还不够强)或全部出错(共模电压足够高),不会是头尾对 ...

测试发现数据位数不变,出错的字节变成0x00的概率比较大
此帖出自51单片机论坛
 
 
 

回复

37

帖子

0

TA的资源

一粒金砂(中级)

14
 
已测试波特率4800情况下数据正确!原先是9600!问题是如果我现在需要用9600波特率应该怎么改,想知道问题出在哪
此帖出自51单片机论坛

点评

先确认串口直连在9600bps下的通迅情况,如果没问题,说明是硬件电路有问题。如果有问题,则是波特率误差太大。  详情 回复 发表于 2018-1-26 15:07
 
 
 

回复

37

帖子

0

TA的资源

一粒金砂(中级)

15
 
shipeng 发表于 2018-1-26 09:25
这位小兄弟,跟你说一个我在工作生涯中遇到过的一个问题:我们当时也是做一个485半双工通信,用电脑串口做 ...

嗯,受指教了
此帖出自51单片机论坛
 
 
 

回复

1万

帖子

139

TA的资源

版主

16
 
黎小宏 发表于 2018-1-26 14:56
已测试波特率4800情况下数据正确!原先是9600!问题是如果我现在需要用9600波特率应该怎么改,想知道问题出 ...

先确认串口直连在9600bps下的通迅情况,如果没问题,说明是硬件电路有问题。如果有问题,则是波特率误差太大。
此帖出自51单片机论坛

点评

9600bps下串口直连电脑是没问题的,但是经过MCU就有问题,是硬件电路的问题吗  详情 回复 发表于 2018-1-26 15:17
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

回复

37

帖子

0

TA的资源

一粒金砂(中级)

17
 
chunyang 发表于 2018-1-26 15:07
先确认串口直连在9600bps下的通迅情况,如果没问题,说明是硬件电路有问题。如果有问题,则是波特率误差 ...

9600bps下串口直连电脑是没问题的,但是经过MCU就有问题,是硬件电路的问题吗
此帖出自51单片机论坛

点评

9600bps有无问题,是说MCU与PC通过串口直接通迅,不是PC自发自收。  详情 回复 发表于 2018-1-26 22:30
 
 
 

回复

37

帖子

0

TA的资源

一粒金砂(中级)

18
 
单片机用的是内部IRC时钟,频率11.0592MHz,modbus总线那边用的是9600bps。这是我的485电路原理图,麻烦帮我分析下有什么问题。。

e8be5df9a2d91b45a662807ec1d9b69d.png (47.58 KB, 下载次数: 0)

e8be5df9a2d91b45a662807ec1d9b69d.png
此帖出自51单片机论坛

点评

电路的逻辑没什么问题,但复杂了,而且总线没有加静态偏置,这样的话编程时必须考虑总线静态逻辑的确认。Q1不必要,485接口片的驱动能力够强,足以驱动LED。C8、C16、C17都不需要。  详情 回复 发表于 2018-1-26 22:35
 
 
 

回复

4008

帖子

0

TA的资源

版主

19
 
带着单片机,先测单收单发RE先固定到收发状态看行不行.
如果这个做不到肯定是电路问题,用示波器看看.
此帖出自51单片机论坛

点评

已解决了,把C8去除就可以了,谢谢  详情 回复 发表于 2018-1-27 10:29
 
 
 

回复

1万

帖子

139

TA的资源

版主

20
 
黎小宏 发表于 2018-1-26 15:17
9600bps下串口直连电脑是没问题的,但是经过MCU就有问题,是硬件电路的问题吗

9600bps有无问题,是说MCU与PC通过串口直接通迅,不是PC自发自收。
此帖出自51单片机论坛
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表