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

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

3天内不再提示

嵌入式分享#60:UART 我只会 TX、RX

BSP调试从0到1 2026-04-10 15:14 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

说到 UART ,我只知道TX、RX两根线,对“什么是 RTS/CTS 硬件流控”一概不懂。今天正好有时间,就来搞它,懂它,搞懂它!wKgZO2nKeIKAH5FkAABChmOAHH8941.png

为什么需要“流控”?


先举个日常场景:小区快递员(发送方)送快递,你(接收方)在家收快递。如果你正在忙(比如做饭),没法及时开门收件,快递员硬要把快递塞进去,很可能导致快递丢失;但如果居你能提前告诉快递员“现在能收”或“等下再来”,就能避免这种问题。

UART通信里的“流控”,主要就是解决这个问题:发送方和接收方的处理速度可能不匹配(比如发送方是高速 SoC,接收方是低速传感器),如果发送方一股劲拼命发数据,接收方缓冲区满了处理不过来,多余的数据就会丢失流控的作用,就是让收发双方“互相沟通”,协调传输节奏。

流控分两种:软件流控靠特殊字符XON/XOFF)和硬件流控(靠专用引脚RTS/CTS)。今天重点聊更可靠、更常用的——RTS/CTS硬件流控。

RTS和CTS 是两个“通信信号兵”


UART基础通信只需要TX(发送线)、RX(接收线)、GND(地线)三根线,而RTS/CTS硬件流控需要额外增加两根专用引脚,这两根线就像两个“信号兵”,专门负责传递“能不能发数据”的指令。

wKgZO2nKeIKAcfwDAAAzDizjbUE333.jpg

RTS(Request To Send)——请求发送由“接收方”控制,发给“发送方”的信号,意思是“我(接收方)准备好了,你可以发数据了”(或“我忙,别发了”); 注意:很多人会搞反控制方,记住“RTS是接收方发的请求”,不是发送方!

CTS(Clear To Send)——允许发送由“发送方”控制,发给“接收方”的信号?不!错了!再记一遍:CTS是“对RTS的响应”,通常和RTS交叉连接——接收方通过RTS发请求,发送方看到后,通过CTS回应“我收到你的请求了,马上发/停止发”;更简单的记法:RTS=接收方的“就绪信号”,CTS=发送方的“应答信号”,两根线交叉连接(A的RTS接B的CTS,A的CTS接B的RTS)。

补充:硬件上,RTS和CTS都是“低电平有效”(大部分场景)——比如接收方拉低RTS,就表示“我就绪了”;发送方拉低CTS,就表示“我收到指令,准备发/已停止”。

总结

RTS/CTS硬件流控的一句话概括:接收方靠RTS发“就绪/暂停”信号,发送方靠CTS响应,从硬件层面协调传输节奏,避免数据丢失它不需要占用数据带宽,可靠性高,是高速、大数据量UART通信的“必备技能”。

你在使用UART流控时,有没有遇到过接线接反、配置无效这类坑?欢迎评论区留言交流分享~

(完)


本人专注 Linux 驱动 & Linux/Android BSP 开发调试,可接外包项目/技术支持/问题定位。有需求或交个朋友可加微信:【Chen_WeChat2026】。


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

    关注

    5208

    文章

    20610

    浏览量

    336555
  • uart
    +关注

    关注

    22

    文章

    1319

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    2025嵌入式开发教程|远航哥

    的"语言"。作为从业者,见证了串口、I2C和SPI这三种主流协议在不同场景下的应用与演进。它们各自独特的物理层设计、协议机制和适用场景,构成了嵌入式通信的三大支柱。 串口通信:最古老的现代协议 串口通信(UART)堪称电子通信
    的头像 发表于 03-20 17:35 1281次阅读
    2025<b class='flag-5'>嵌入式</b>开发教程|远航哥

    什么是嵌入式应用开发?

    概述 所谓的嵌入式应用开发就是在嵌入式操作系统下进行开发、软硬件综合开发 ‌嵌入式应用开发‌是指在嵌入式操作系统下进行开发,包括系统化设计指导下的硬件和软件综合研发。
    发表于 01-12 16:13

    Renesas Starter Kit for RX72T:开启嵌入式开发新征程

    Renesas Starter Kit for RX72T:开启嵌入式开发新征程 在嵌入式开发领域,一款功能强大且易于使用的开发套件能大大提升开发效率与质量。今天,我们就来深入探讨Renesas
    的头像 发表于 12-29 15:45 1222次阅读

    探索 RENESAS EK - RX261 v1 评估套件:开启嵌入式系统设计新旅程

    探索 RENESAS EK - RX261 v1 评估套件:开启嵌入式系统设计新旅程 在嵌入式系统开发的广阔领域中,一款优秀的评估套件能够极大地提升开发效率,帮助工程师快速验证设计理念。今天,我们
    的头像 发表于 12-26 18:00 1651次阅读

    系统嵌入式的学习路线

    的知识太多,太杂,太广,很多嵌入式初学者陷入嵌入式知识的海洋中,东学一点,西学一点,找不到学习的方向。 从事嵌入式开发工作有10年,嵌入式
    发表于 12-16 07:49

    什么是嵌入式操作系统?

    RT-Thread)还集成了设备驱动框架,支持 SPI、I2C、UART 等外设的标准化调用,和 HAL 库配合更高效。 四、嵌入式 OS 的典型特征(判断一个 OS 是否适合嵌入式场景
    发表于 12-09 10:33

    MCU(UART)串口的RXTX如何使其反相输出?

    MCU(UART):串口的RXTX如何使其反相输出?
    发表于 11-14 06:10

    嵌入式需要掌握哪些核心技能?

    /网络设备)、中断底半部处理,适用于高端嵌入式设备。 企业需求:RTOS是60%岗位的核心要求,Linux开发需求随项目复杂度增长。 4)通信协议与接口 基础协议:UART、SPI、I2C、CAN总线
    发表于 10-21 16:25

    入行嵌入式应该怎么准备?

    任务调度的代码是非常重要的。此外,了解操作系统内核的工作原理以及与硬件交互的方式也是必须的。 四、通信协议嵌入式系统通常需要与其他设备或系统进行通信。了解常见的通信协议(如UART、SPI、I2C
    发表于 08-06 10:34

    CYW20704 的 UART 4 针(TX/RX/CTS/RTS)是什么形式(推拉或漏极开路)吗?

    你知道 CYW20704 的 UART 4 针(TX/RX/CTS/RTS)是什么形式(推拉或漏极开路)吗?
    发表于 07-04 07:34

    Tx-Rx iPAC FEM 双频 GSM/GPRS skyworksinc

    电子发烧友网为你提供()Tx-Rx iPAC FEM 双频 GSM/GPRS相关产品参数、数据手册,更有Tx-Rx iPAC FEM 双频 GSM/GPRS的引脚图、接线图、封装手册、中文资料、英文
    发表于 06-25 18:34
    <b class='flag-5'>Tx-Rx</b> iPAC FEM 双频 GSM/GPRS skyworksinc

    用于双频 GSM / GPRS / EDGE 的 Tx-Rx 前端模块 skyworksinc

    电子发烧友网为你提供()用于双频 GSM / GPRS / EDGE 的 Tx-Rx 前端模块相关产品参数、数据手册,更有用于双频 GSM / GPRS / EDGE 的 Tx-Rx 前端模块的引脚
    发表于 06-25 18:31
    用于双频 GSM / GPRS / EDGE 的 <b class='flag-5'>Tx-Rx</b> 前端模块 skyworksinc

    TxRx iPAC™ 前端模块 – 四频 GSM/GPRS skyworksinc

    电子发烧友网为你提供()TxRx iPAC™ 前端模块 – 四频 GSM/GPRS相关产品参数、数据手册,更有TxRx iPAC™ 前端模块 – 四频 GSM/GPRS的引脚图、接
    发表于 06-25 18:31
    <b class='flag-5'>Tx</b>–<b class='flag-5'>Rx</b> iPAC™ 前端模块 – 四频 GSM/GPRS skyworksinc

    用于双频 GSM / GPRS 的 Tx-Rx iPAC™ 前端模块 skyworksinc

    电子发烧友网为你提供()用于双频 GSM / GPRS 的 Tx-Rx iPAC™ 前端模块相关产品参数、数据手册,更有用于双频 GSM / GPRS 的 Tx-Rx iPAC™ 前端模块的引脚图
    发表于 06-25 18:30
    用于双频 GSM / GPRS 的 <b class='flag-5'>Tx-Rx</b> iPAC™ 前端模块 skyworksinc

    飞凌嵌入式2025嵌入式及边缘AI技术论坛圆满结束

    飞凌嵌入式「2025嵌入式及边缘AI技术论坛」在深圳深铁皇冠假日酒店盛大举行,此次活动邀请到了200余位嵌入式技术领域的技术专家、企业代表和工程师用户,共享嵌入式及边缘AI技术的盛宴!
    的头像 发表于 04-28 13:57 4313次阅读
    飞凌<b class='flag-5'>嵌入式</b>2025<b class='flag-5'>嵌入式</b>及边缘AI技术论坛圆满结束