RS485接收数据后发送乱码

2023-05-16

最近调块板子上面有几路485,控制芯片STM32F407VE、转换芯片ADM2587,使用485转换器连接电脑,发现串口助手向板子发送数据后会收到乱码,经软硬件联合调试排除bug。

一、问题现象

1、485向上位机发送数据,串口助手正常收到数据

u8 test_buf[10]={0x02,0x12,0x22,0x32,0x42,0x52,0x62,0x72,0x82,0x92};

for(t=0;t<10;t++){
	while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
	USART_SendData(USART1,flash_buf[t]);
}

在这里插入图片描述

2、串口助手通过RS485向MCU发送数据,现象就是上位机会接收到一串莫名其妙的数据,发送数据越多接收到的乱码越多,且这种乱码具有一致性(发送一样的数据,反馈回的乱码会保持一致)

在这里插入图片描述

二、解决问题

1、检查了一遍485驱动、相应的串口中断,无误。将CH340直接连到usart口上发现不会出现异常,那么问题就会出在ADM2587及后级电路上。

在这里插入图片描述

2、去掉匹配电阻后异常解决

百度原因:对RS转RS网络一般要使用终接电阻进行匹配。但在短距离与低速率下可以不用考虑终端匹配。那么在什么情况下不用考虑匹配呢?理论上,在每个接收数据信号的中点进行时,只要反射信号在开始采样时衰减到足够低就可以不考虑匹配。但这在实际上难以掌握,美国MAXIM公司有篇文章提到一条经验性的原则可以用来判断在什么样的数据速率和电缆长度时需要进行匹配:当信号的转换时间(上升或下降时间)超过电信号沿单向传输所需时间的3倍以上时就可以不加匹配。 例如具有限斜率特性的RS-输出信号的上升或下降时间最小为250ns,典型双绞线上的信号传输速率约为0.2m/ns(24AWG PVC电缆),那么只要数据速率在250kb/s以内、电缆长度不超过16米,RS-接口时就可以不加终端匹配。

ps.在匹配电阻上串联个跳冒,短距离、低频时就不短接,反之短接。

参考链接:
http://www.51hei.com/bbs/forum.php?mod=viewthread&tid=197613
https://www.sohu.com/a/120014600_119709

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RS485接收数据后发送乱码 的相关文章

  • 基于RS485通信的Modbus通信协议

    通信可以分为两个方面 xff1a 硬件层 xff1a RS485解决的是数据传输问题 xff0c 也就是说如何将一个 0 或 1 传输到另外一端 xff08 保证了数据可以转移到另一端 xff09 软件层 xff1a modbus是在硬件基
  • RS485通讯---Modbus数据链路层与应用层(二)

    前言 RS485通讯 Modbus物理层 xff1a https blog csdn net qq 36883460 article details 105630712 Modbus RTU通讯协议中OSI模型 xff0c 数据链路层和应用
  • 串口通信和RS485-第1季第13部分-朱有鹏-专题视频课程

    串口通信和RS485 第1季第13部分 5373人已学习 课程介绍 本课程是 朱有鹏老师单片机完全学习系列课程 第1季第13个课程 xff0c 主要讲解了串行通信UART及其扩展RS485 本课程很重要 xff0c 因为串口通信是我们接触的
  • 基于UCOSII的RS485通信(STM32F107)

    一 实现效果 基于ucosii实时操作系统的RS485通信 xff0c 采用USART 43 DMA进行收发 xff0c 二 开发环境 开发工具 xff1a KEIL V5开发板 STM32f107RC采用方式 xff1a USART 43
  • CAN总线与RS485的比较

    最近一个项目总体方案设计为分布式系统 xff0c 于是在通讯上纠结于CAN总线还是RS485 因此在网上搜索一些了一些关于RS485和CAN总线的资料 xff0c 除进一步认识RS485通讯特点外 xff0c 认识了CAN总线的特点及其与R
  • RS232,RS485波形分析

    通过观察波形可以确定以下情况 xff1a 是否有数据接收或发送 xff1b 数据是否正确 xff1b 波特率是否正确 xff1b 一 串行数据的格式 异步串行数据的一般格式是 xff1a 起始位 43 数据位 43 停止位 xff0c 其中
  • UART、RS232、RS485 串行通信详解

    一 UART通信 UART是Universal Asynchronous Receiver Transmitter的缩写 xff0c 意即通用异步串行通信接口 xff0c 是最常用的通信技术之一 xff0c 广泛用于设备与电脑之间 设备与设
  • 关于RS485和RS422总线,一主多从回复信号被拉低收不到反馈数据的问题。

    芯片 xff1a MAX13487EESA xff08 RS485 xff09 这里这个三个电阻不接 AK管不接也行 如果你发现你在总线上挂接两个以上的RS485模块 xff0c 发现总线电压和只接一个时波形幅度降低了 xff0c 就是上面
  • TTL/RS232/RS422/RS485串行通信接口区别与波形

    TTL RS232 RS422 RS485通信接口区别与波形 串行通信接口区别串口数据帧格式接线图波形图 串行通信接口区别 TTL RS232 RS422 RS485指的是电平接口标准 xff0c 都属于串行通信接口 xff0c 即串口 x
  • 串口485接法图_rs485接口接线方法

    展开全部 RS485采用差分信号负逻辑 xff0c 43 2V xff5e 43 6V表示 0 xff0c 6V xff5e 2V表示 1 62616964757a686964616fe4b893e5b19e31333365643661RS
  • MODBUS通讯协议和RS232以及RS485通讯协议有什么区别

    转载粘贴其他人的分析 xff1a
  • UART、RS232 、RS485 区别

    UART RS232 RS485 区别 UART RS232 RS485这些物理层的串口通信 xff0c 它们都是在同一时间发送一位 RS232 RS485只是串口通讯的变种 xff0c 理解了UART串口通讯 xff0c 那么RS232和
  • STM32的串口硬件流控(RS232/RS485)

    流控的概念源于 RS232 这个标准 xff0c 在 RS232 标准里面包含了串口 流控的定义 RS232 中的 RS 是Recommend Standard 的缩写 xff0c 即 推荐标准 之意 xff0c 它并不像 IEEE 128
  • RS485波形记录与分析

    异步串行数据的一般格式是 xff1a 起始位 43 数据位 43 停止位 xff0c 其中起始位1 位 xff0c 数据位可以是5 6 7 8位 xff0c 停止位可以是1 1 5 2位 对于正逻辑的TTL电平 xff0c a 起始位是一个
  • RS485接口连接设备数量总共有多少?

    RS485总线可以连接256个设备 xff0c 但测试后发现这个数字有比较大的差异 有一种说法认为专门开发串行嵌入式的RS485总线只能连接32个节点 xff0c 这由自身的驱动能力决定的 有人说网上的各种485总线产品可以支持128个 x
  • 串口波形分析(TTL,RS232,RS485)

    TTL xff0c RS232 xff0c RS485波形分析 本文转自 xff1a http blog 163 com qiu zhi2008 blog static 60140977201092651854445 http www cn
  • 【总线】一文看懂RS232和RS485通信总线

    目录 RS232概述 RS232特性 RS485 概述 RS485 特性 RS232 和 RS485 的区别 区别总结 RS232概述 RS 232接口符合电子工业联盟 xff08 EIA xff09 建立的串行数据通信接口标准 原始编号是
  • RS422-RS485-RS232标准接线

    1 RS422标准接线 2 RS485标准接线 3 RS485全双工接线
  • 使用python通过串口发送十六进制

    这个周末我要做一个小项目 我有一个太阳能电池逆变器 丹佛斯 ULX 3600i 我将尝试将其连接到我的 Linux 机器 看看我是否可以从中获取数据 创建多少能量 例如统计数据 其上有一个用于RJ45连接的输入 但带有RS485 我用电缆通
  • Microchip PIC 的 Modbus 堆栈

    有人可以建议为 Microchip PIC18 处理器实现 Modbus RTU 从站的开源实现吗 我正在寻找 RS 232 RS 485 的 Modbus RTU 实现 但 Modbus TCP IP 实现也将受到欢迎 我已经为 PIC1

随机推荐