求助,串口转485出现乱码

求大佬们分析下是软件问题还是硬件问题

串口转485,收发一个字节正常,多个字节出现乱码,下图外接了一个485模块1673259616(1).jpg

发送123收到回复的数据是乱码

42c28ea241d91f757ab82026524d3fc.png

使用逻辑分析仪查看发送的数据也是错误的

1f55dbff3197eefa22ccd8d37ae8224.png注释掉105行的代码,再次使用逻辑分析仪查看发送的数据是正确的

a710f0a6960c12b6ece5eecd310f606.png81e9a6b5acd3b11ca291b11aaf6ede6.png接一个串口转usb,收发都正常

1673260285(1).jpg

1673260389(1).jpg

您好,你可以把中断函数按照我下面配置试一下

image.png


明天试试


485是半双工,正在接收数据的时候就不应该发送数据,应该等待接收全部数据再发送


不行,中断函数里的代码已经改过了,问题依然存在。


您好,

        我觉得可以从以下几个方面查找问题,

        测试程序可以使用例程,串口收发例程进行测试,使用时要注意485芯片RE与DE的正确控制;

        从照片中看,串口信号有过芯片,也看到您使用串转U进行了测试,建议用示波器再看下信号情况,或者可以直接将485与芯片本身进行连接,测试收发是否正常;

        从逻辑分析仪的截图看,485仅有一半的信号,可以使用示波器两个探头,同时挂接在485的A、B端,直接观察信号是否正确输出,一是排除逻辑分析仪电平配置错误,二是排除转换芯片本身损坏问题;

        接收端与发射端的连接是否正确,连接是否稳定,接收端工作是否正常。


这个很简单,你用逻辑分析仪分别测uart8的tx和rx引脚,如果同时有波形就肯定数据是错的,要处理到不同时收发就可以了,你屏蔽发送后,接收正常这已经说明你的发送已经影响到接收了


485是自动收发,下图是逻辑分析仪接在RX和TX获取的到波形。

1673329601(1).png1673329672(1).jpg


您好,附件为串口转485收发例程,测试都是没有问题的,你可以参考一下。注意程序中涉及到485芯片RE、DE引脚的控制,当发送时,设置RE、DE引脚高电平,接收时,设置RE、DE引脚低电平。后续若有问题,可通过邮箱具体沟通一下(lzs@wch.cn)。

icon_rar.gifCH32V307 串口1485.zip

image.png


只有登录才能回复,可以选择微信账号登录