完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
如果大家也有产生这种现象的,一起交流交流啊,有大神能提点一下就更好了!谢谢,万分感谢!
大家好,我之前有一块板子,是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 如果大家也有产生这种现象的,一起交流交流啊,有大神能提点一下就更好了!谢谢,万分感谢! |
|
相关推荐
15个回答
|
|
刚刚发错
大概知道什么问题了,你的485处于发送的时候,切记要关闭你的485的接收(因为485只能单工通讯,发送的时候你去接收SBUF的数据也没意义),这时候一定不要去接收485的数据,至于什么原因,你按我说的去验证一下再说。 此外提醒一下,你改一下程序,你不要让单片机发送数据,你用串口助手给单片机发数据a或b,然后在程序中判断是不是收到a或b,如果是,亮一下灯。以验证485的接收有没有问题。 |
|
|
|
USB转232的线有问题,用232转485最好用原生串口,实在没有,给232转485提供个电源,或用直接USB转485的。
|
|
|
|
可以先把485模块去掉,直接用单片机串口给电脑串口发数据,测试单独的串口是否正常。或者直接用两个USB转串口中间用485模块对接,直接用电脑上的串口助手互发数据,测试485模块是否正常。
|
|
|
|
您好,我想问一下,您说的线有问题,是指的银色的线有问题,还是黄绿色的线有问题,这个问题是干扰还是什么?对于原生串口没有太明白意思。。。。自己好像真的是个小白,
我还有一个这样的USB转485,刚才试了一下还是一样的结果,所以想问一下线的问题, |
|
|
|
有问题的是银色线,你的232转485的电源来自信号,而USB转的232输出信号提供不了太大的电流。
|
|
|
|
原生串口,就是计算机主板上带的串口,这个信号输出电流比较大,你USB可以直接转485,这个供电来自USB的5V,就没有这个问题。
|
|
|
|
另外还有一个可能,单片机自己控制485收发的话,发完立刻转接受状态,不要延时。
|
|
|
|
你把16进制转2进制,看看是不是有缺位或串位现象,有的话就是485收发转换不及时。
|
|
|
|
感觉像485收发转换不及时
|
|
|
|
估计是代码逻辑问题,把逻辑理清楚,TI一个清除就可以了,两个估计就会乱掉
|
|
|
|
1.你先把485两个端子的线调换一下,看看有没有问题;2.如果还有问题,你买一个485匹配器。我们用485做电表的通讯,用了好多年了,我们都是用485匹配器来观察485的数据的,可以加我微信baofeng_zouyu交流一下
|
|
|
|
大概知道什么问题了,你的485处于发送的时候,切记要关闭你的485的接收(因为485只能单工通讯,发送的时候你去接收SBUF的数据也没意义),如果这时候一定不要去接收485的数据,至于什么原因,你按我说的去验证一下再说。
此外提醒一下,你改一下程序,你不要让单片机发送数据,你用串口助手给单片机发数据a或b,然后在程序中判断是不是收到a或b,如果是,亮一下灯。以验证485的接收有没有问题。 |
|
|
|
楼主你好,我今天遇到的问题和你的一模一样,我想请问一下你的问题解决了吗?
|
|
|
|
额,我觉得是硬件问题,所以又买了一个模块。。。功能可以实现,现在出现的问题是波特率设置不对,可能是硬件有问题。。。感觉调不粗来。。。
|
|
|
|
你是自己的板子还是什么模块,对应的程序可以发给我看看,1135973344@qq.com
|
|
|
|
只有小组成员才能发言,加入小组>>
3280 浏览 9 评论
2958 浏览 16 评论
3460 浏览 1 评论
9004 浏览 16 评论
4052 浏览 18 评论
1117浏览 3评论
573浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
571浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2304浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1860浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 06:10 , Processed in 1.595614 second(s), Total 108, Slave 88 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号