OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

查看: 372|回复: 9

51单片机RS485通讯发送和接收不匹配的原因

[复制链接]

  离线 

7

主题

17

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2017-3-1
在线时间
33 小时
发表于 2018-5-15 22:11:16 | 显示全部楼层 |阅读模式
10金钱

如果大家也有产生这种现象的,一起交流交流啊,有大神能提点一下就更好了!谢谢,万分感谢!


大家好,我之前有一块板子,是51的板子,这两天在学RS485模块的时候,发现好像板子的例程与实验结果不一样,
实验过程是把板子按照规定的方式连接,然后485两个接线柱引出接到RS232转RS485然后再接到电脑,
程序的功能是在实验串口发送一个数字,然后单片机再返回一个一样的数字
但是在实验过程中,发回的数字与发送的却并不一样,例如我发送的是十六进制的1,返回的是十六进制的7F,而且是每个数字都有固定的对应量,像是映射一样。。。。。
我与老师和同学聊过,同学基本没接触过(主要是接触232,而且我的232也好用。。。),
其中一位老师的建议是,(1)检查硬件,如导线之类的,(2)或检查软件,(3) 拿示波器观察波形,如果发射端、传输导线。接收端的电平不一样,那么就是导线问题(这个得明天找实验                                         室老师借)
                                    但我觉得 硬件应该没问题吧,因为返回数字和发送对应,并不是乱码,说明连接是正确的,干扰应该也没有,但是软件的话我觉得套路很正常,用SBUF寄存器的功                                       能,甚至都不做什么修改,出现错位就比较头疼
或者另外一位老师的说法,是否存在一些公式转换的问题,因为同样的程序套路,232好用,485错位,那么是不是我的485程序里面有一些底层的程序错位,公式错误,导致数据错位,这个就比较玄乎了,不过缺少类似的经验,返回的数据到时有一定的规律,给大家看一看吧,还挺有意思的
                                         1————————7F                 2————————3F
                                         3————————7E                 4————————1F   
                                         5————————7D                 6————————3E   
                                         7————————7C                 8————————0F   
                                         9————————7B                10————————07   
                                       11————————77                 12————————3B  
                                       13————————76                 14————————1D   
                                       15————————75                 16————————3A  
                                       17————————74                 18————————0E  
                                       19————————73                 20————————03

如果大家也有产生这种现象的,一起交流交流啊,有大神能提点一下就更好了!谢谢,万分感谢!



IMG_20180515_214119_1.jpg

1.jpg 2.jpg
3.jpg

回复

使用道具 举报

  离线 

2

主题

172

帖子

0

精华

高级会员

Rank: 4

积分
561
金钱
561
注册时间
2013-6-5
在线时间
80 小时
发表于 2018-5-16 00:59:37 | 显示全部楼层
USB转232的线有问题,用232转485最好用原生串口,实在没有,给232转485提供个电源,或用直接USB转485的。
回复

使用道具 举报

  离线 

0

主题

251

帖子

0

精华

高级会员

Rank: 4

积分
566
金钱
566
注册时间
2018-2-7
在线时间
60 小时
发表于 2018-5-16 09:21:36 | 显示全部楼层
可以先把485模块去掉,直接用单片机串口给电脑串口发数据,测试单独的串口是否正常。或者直接用两个USB转串口中间用485模块对接,直接用电脑上的串口助手互发数据,测试485模块是否正常。
回复

使用道具 举报

  离线 

7

主题

17

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2017-3-1
在线时间
33 小时
 楼主| 发表于 2018-5-16 10:23:42 | 显示全部楼层
zhxzhx 发表于 2018-5-16 00:59
USB转232的线有问题,用232转485最好用原生串口,实在没有,给232转485提供个电源,或用直接USB转485的。

您好,我想问一下,您说的线有问题,是指的银色的线有问题,还是黄绿色的线有问题,这个问题是干扰还是什么?对于原生串口没有太明白意思。。。。自己好像真的是个小白,
我还有一个这样的USB转485,刚才试了一下还是一样的结果,所以想问一下线的问题,
USB转485.jpg

普通线

普通线

银色线

银色线
回复

使用道具 举报

  离线 

2

主题

172

帖子

0

精华

高级会员

Rank: 4

积分
561
金钱
561
注册时间
2013-6-5
在线时间
80 小时
发表于 7 天前 | 显示全部楼层
正点原子公众号
Liuyangliuyang 发表于 2018-5-16 10:23
您好,我想问一下,您说的线有问题,是指的银色的线有问题,还是黄绿色的线有问题,这个问题是干扰还是什 ...

有问题的是银色线,你的232转485的电源来自信号,而USB转的232输出信号提供不了太大的电流。
回复

使用道具 举报

  离线 

2

主题

172

帖子

0

精华

高级会员

Rank: 4

积分
561
金钱
561
注册时间
2013-6-5
在线时间
80 小时
发表于 7 天前 | 显示全部楼层
原生串口,就是计算机主板上带的串口,这个信号输出电流比较大,你USB可以直接转485,这个供电来自USB的5V,就没有这个问题。
回复

使用道具 举报

  离线 

2

主题

172

帖子

0

精华

高级会员

Rank: 4

积分
561
金钱
561
注册时间
2013-6-5
在线时间
80 小时
发表于 7 天前 | 显示全部楼层
另外还有一个可能,单片机自己控制485收发的话,发完立刻转接受状态,不要延时。
回复

使用道具 举报

  离线 

2

主题

172

帖子

0

精华

高级会员

Rank: 4

积分
561
金钱
561
注册时间
2013-6-5
在线时间
80 小时
发表于 7 天前 | 显示全部楼层
你把16进制转2进制,看看是不是有缺位或串位现象,有的话就是485收发转换不及时。
回复

使用道具 举报

  离线 

0

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2018-5-7
在线时间
3 小时
发表于 7 天前 | 显示全部楼层
感觉像485收发转换不及时
回复

使用道具 举报

  离线 

14

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2337
金钱
2337
注册时间
2013-6-27
在线时间
309 小时
发表于 7 天前 | 显示全部楼层
估计是代码逻辑问题,把逻辑理清楚,TI一个清除就可以了,两个估计就会乱掉
让我们的思维驾驭在电的速度之上!
回复

使用道具 举报

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

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-5-24 01:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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