0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

串口通信是什么,常见的问题以及解决方法

kae1_cdebyte ? 来源:亿佰特物联网应用专家 ? 作者:亿佰特物联网应用 ? 2022-11-18 10:19 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

什么是串口通信

串口,一般指异步串行接口(Serial Port),主要用于串行式逐位数据传输。串口对于处于嵌入式行业的我们来说,是必不可缺的一部分,在刚开始学习单片机时,我们最先学习的通信接口就是USART(Universal Synchronous/Asynchronous Receiver/Transmitter)——通用同/异步串行接收/发送器。其中最常见的串口通信的时序如下图:

29140ce0-6676-11ed-8abf-dac502259ad0.png

有起始位、数据位、校验位、停止位、波特率等几个通信参数。

232 / 485/ 422通信

串口通信主要可分为232、485、422三种通信方式。

232通信

232通信主要是由RX、TX、GND三根线组成。RX接TX,TX接RX,GND接GND。发送和接收由不同的线路处理,所以能够同时进行发送和接收数据,因此232是全双工通信。

485通信

为了解决232通信距离受限问题,于是有了485通信。 485通信只需要+、-两根线(也叫A、B两根线),A、B两根线的差分电平信号就是作为数据信号传输。发送和接收都用这两根线,每次只能发送数据或者接收数据,因此485是半双工通信。

422通信

422通信兼具232与485的特点,既能实现全双工通信,又能增大传输距离。422也常被标注为485-4,而485被标注为485-2。因为485-2是2根线,485-4是4根线,下图是422的示意图。

2923c46e-6676-11ed-8abf-dac502259ad0.png

422将232的RX分成RX+和RX-,把TX分成TX+和TX-,实现同时发送和接收。 最常用的还是232和485通信。

2936bee8-6676-11ed-8abf-dac502259ad0.png

串口通信常见问题及解决

串口作为工程师日常开发时的非常重要的一个角色,也时常会碰到很多问题,深受各种折磨,接下来就来说说平时串口通信中常见的问题以及解决方法。 通常我们调试串口通信碰到问题时,需要用到一个USB转TTL、杜邦线(导线)等工具,首先我们应当保证自己的工具是正常的,可以通过以下方法自测:

1、将USB转TTL中的TX、RX使用杜邦线或是跳线帽短接。 打开串口调试工具,例如XCOM、SSCOM等,将波特率、停止位、校验位等参数调至即将需要通信的模块的参数,再去随意发送一些数据,通常笔者是更倾向于使用16进制发送和接收,以此来保证数据中间或者结尾出现一些不可使用ASCII值直观看到的数据,例如数据的结尾多了0x00,0x0a等。若确保自己的工具以及导线没有问题后,即可继续排查通信问题。

2、发现使用USB转TTL与模块之间明明已经反接了TX、RX,发指令给模块之后却没有任何反应。解决方法:当碰到如上问题时,应当首先自检工具,再检查是否双方共地,GND提供了一个基准0电平,如果没有共地的话,那极有可能会出问题,其次是检查双方的串口参数是否一致,串口通信是一个易于开发并且速度可调的一个的通信协议,其中我们大部分都会使用UART——通用异步传输接收/发送器,串口异步通信也可称为起止式异步通信,是直接以字符为单位进行传输的,字符之间没有固定的时间要求,每个字符中的每一位以固定的时间传送。这就意味着,如果你使用一个较为高的波特率的速度去与一个较为低的波特率的速度去通信的话,那极大可能会导致低波特率设备无法读取到通信时的空闲信号的跳变信息。 在这里笔者用一个比较极端例子进行说明: 当双方串口的参数的数据位都为8bit,停止位为1bit,校验位为0bit时,但是A设备的波特率为9600,B设备为921600,就会出现以下情况: 当B设备向A设备发送一个字节的数据时,B设备从发送到结束所需用的时间为1/921600*(8+1+1)=10.8us,而相同的A设备发送/接收一个字节的时间为(8+1+1)/9600=1.04ms,试问,像这种相差数倍的时间,当高波特率发送给低波特率设备时,很有可能低波特率设备压根就不会认为发送过来的数据流是一串数据,因为压根没法解析到。

294cad98-6676-11ed-8abf-dac502259ad0.gif

*收发波特率一致

295b6e8c-6676-11ed-8abf-dac502259ad0.gif

*收发波特率不一致 因此串口通信一定要保证双方波特率、停止位等参数一致。反之,低波率向高波特率发送数据就会被认为是错误的数据,也就是所谓的乱码。 3、发现双方已经使用了相同的参数进行通信,但是通信依旧有问题,例如收到乱码等。解决方法:首先应该降低波特率,先确保模块与USB转TLL均无问题,也要确保模块没有处于透传等特殊情况下,也可以使用逻辑分析仪等工具进行排查,现在的很多逻辑分析仪是自带数据分析的,可以由此来确保模块正常。其实大部分碰到这种问题的时候,更建议优先查看USB转TLL是否支持当前的工作模式。

其他问题:

电脑使用USB转串口可以和设备通信,为何换成屏就无法与设备通信? 电脑使用USB转串口连接设备,可能使用的是标准串口功能(除RX,TX,GDN外,还使用了其它引脚);检查接线方法是否正确;电脑与控制器PLC通信时,扫描波特率参数,是自适应,屏通信可能参数没有设备好。另外,还需注意,有时可能会使用一些串口助手发送测试数据与控制器通信,有些串口助手的奇偶校验会不起作用。 一个设备是232,另一个设备是422,没有转换设备,怎么办? 232和422都是全双工通信,422以一种差分信号传输。可以将422的Rx+与232的TX对接,422的RX-与232的GND对接;将422的TX+与232的RX对接,422的TX-与232的GDN对接。422设备发送数据时可以发送到232的RX上;232的TX发送数据后,由于TX和GND也形成了差分信号给到422,422就可以接收到数据。 能否实现两个主站通过485访问ModBus设备? 485通信基本上是一主多从,现阶段还不能实现两个主站访问一个ModBus设备。 换屏后无法再跟设备通信,怎么解决? 首先需要确认接线是否正确,RX和TX是否兼容;其次检查是否有接地线;除了RX,TX,GND,是否还有其它引脚需要短接;查看通信协议、波特率是否相同。

审核编辑:

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6069

    文章

    45086

    浏览量

    653974
  • 嵌入式
    +关注

    关注

    5161

    文章

    19784

    浏览量

    319671
  • 串口通信
    +关注

    关注

    34

    文章

    1643

    浏览量

    57018

原文标题:总结来了!串口通信常见问题及解决方法

文章出处:【微信号:cdebyte,微信公众号:亿佰特物联网应用专家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    电机常见故障分析及解决方法

    电机在运行过程中可能会出现多种故障,以下是一些常见故障的分析及解决方法: 一、机械故障 1. 轴承损坏或磨损 ? ?● 故障表现:电机运转不平稳,产生异响,严重时甚至停转。 ? ?● 原因分析:通常
    的头像 发表于 04-25 15:20 ?1404次阅读
    电机<b class='flag-5'>常见</b>故障分析及<b class='flag-5'>解决方法</b>

    IGBT在中频电源中常见的故障模式及解决方法

    在现代工业电气领域,中频电源应用广泛,而 IGBT(绝缘栅双极型晶体管)作为中频电源的核心器件,起着至关重要的作用。本文将深入探讨 IGBT 在中频电源中的工作原理、关键作用,以及常见的故障模式及解决方法
    的头像 发表于 03-03 14:16 ?1352次阅读
    IGBT在中频电源中<b class='flag-5'>常见</b>的故障模式及<b class='flag-5'>解决方法</b>

    常见电阻器故障及解决方法

    电阻器是电路中常见的元件之一,用于限制电流的流动。它们可能会出现多种故障,以下是一些常见的电阻器故障及其解决方法: 1. 开路故障 故障现象: 电阻器两端没有电流通过。 电路中的其他元件可能无法正常
    的头像 发表于 01-24 16:41 ?2697次阅读

    Dali通信系统常见故障及解决方法

    ,导致控制信号丢失。 1.2 故障原因 物理连接问题,如断线、接触不良。 通信线路受到电磁干扰。 设备地址冲突。 1.3 解决方法 检查所有连接,确保线路完整且接触良好。 使用屏蔽电缆,并确保电缆远离强电磁场。 检查设备地址设置,确保没有重复。 2. 设备
    的头像 发表于 01-10 10:38 ?1222次阅读

    电子焊接的常见问题及解决方法

    电子焊接是电子组装过程中的关键步骤,焊接质量的好坏直接影响电子产品的性能和可靠性。在电子焊接过程中,经常会遇到一些常见问题,掌握其解决方法对于提高焊接质量具有重要意义。以下是几种常见的电子焊接
    的头像 发表于 01-09 10:28 ?1323次阅读

    gitee 常见问题及解决方法

    Gitee作为国内的代码托管平台,在使用过程中可能会遇到一些问题。以下是一些常见问题及其解决方法: 一、仓库创建与代码推送问题 仓库已存在远程配置 问题 :在尝试为已有项目添加远程仓库配置时,可能会
    的头像 发表于 01-06 10:06 ?1456次阅读

    常见串口通信协议 如何设置串口参数

    串口通信是一种常见通信方式,广泛应用于计算机、嵌入式系统和各种电子设备之间。串口通信协议主要是
    的头像 发表于 12-27 09:51 ?3714次阅读

    mac的常见问题解决方法

    Mac常见问题解决方法 1. 系统启动缓慢 问题描述: 启动Mac时,系统启动缓慢,甚至出现卡顿现象。 解决方法: 检查启动项目: 打开系统偏好设置中的“用户与群组”,点击“登录项”,移除不必要
    的头像 发表于 12-19 15:02 ?1298次阅读

    VSS遇到的常见错误及解决方法

    解决方法: 1. 无法连接到VSS数据库 错误描述: 用户尝试连接到VSS数据库时,可能会遇到连接失败的问题。 解决方法: 确保VSS服务器正在运行,并且数据库文件(.mdb)没有被锁定。 检查网络连接,确保客户端和服务器之间的网络通信
    的头像 发表于 12-13 16:08 ?1440次阅读

    Ubuntu系统常见问题及解决方法

    Ubuntu是一个基于Linux的开源操作系统,以其稳定性和易用性而受到许多用户的喜爱。然而,在使用过程中,用户可能会遇到各种问题。以下是一些Ubuntu系统中常见的问题及其解决方法。 1. 无法
    的头像 发表于 12-12 14:32 ?1744次阅读

    RS232通信错误及解决方法 如何使用RS232进行设备组网

    RS232通信错误及解决方法 RS232通信错误可能由多种原因引起,以下是一些常见的错误及相应的解决方法
    的头像 发表于 12-10 15:53 ?6131次阅读

    串口通信常见问题及解决方案

    串口通信常见问题及解决方案 1. 串口通信原理简述 串口通信
    的头像 发表于 11-22 09:06 ?6445次阅读

    串口屏如何与主控制器进行通信

    一、串口通信基础 串口通信是一种通过串行数据传输的方式进行通信方法。在
    的头像 发表于 11-20 09:32 ?898次阅读
    <b class='flag-5'>串口</b>屏如何与主控制器进行<b class='flag-5'>通信</b>?

    以太网组网常见故障及解决方法

    以太网组网是现代网络通信的基础,它涉及到大量的设备和复杂的配置。在以太网组网过程中,可能会遇到各种故障,以下是一些常见的故障及其解决方法: 1. 物理连接问题 故障现象: 网络不通,设备无法相互
    的头像 发表于 11-08 09:13 ?3418次阅读

    逻辑分析仪的常见故障及解决方法

    逻辑分析仪作为数字电路信号分析的关键工具,其稳定运行对于确保测试结果的准确性至关重要。然而,在使用过程中,可能会遇到一些常见故障。以下是对这些故障及其解决方法的详细探讨,以及一些预防故障和维护保养
    的头像 发表于 10-12 15:43 ?2820次阅读