当前位置: 首页 > news >正文

【STM32】RS485

RS485是常见的串口接口。

大部分图片来源:正点原子HAL库课程

 专栏目录:记录自己的嵌入式学习之路-CSDN博客


目录

1    串口、UART、TTL、RS232、RS422、RS485的关系

1.1    串口

1.2    UART、TTL、RS232、RS422、RS485

1.3    常见串口标准的比较

2    RS485特征

3    通信电路

4    RS485电平转换芯片(以TP8485为例)

5    配置

5.1    相关HAL库函数

5.2    配置步骤


1    串口、UART、TTL、RS232、RS422、RS485的关系

1.1    串口

串口是一个通讯时序的标准,它规定的仅仅是发送的数据位,要有启动位、有效数据位、校验位和停止位,然后启动位是逻辑0,停止位是逻辑1,以及发送时它们的先后顺序这些。

1.2    UART、TTL、RS232、RS422、RS485

UART、TTL、RS232、RS422、RS485之类的是串口的接口标准,我理解为关于电平协议,就是什么电平代表逻辑1,什么电平代表逻辑0等等。STM32输出的原生串口信号是CMOS电平的。

1.3    常见串口标准的比较


2    RS485特征

  • 使用差分信号传输,抗干扰能力强;
    • TTL、CMOS都是直接使用电平电压来构成逻辑1/0,但485使用A、B两线的压差来决定,在485线的电压被改变时,由于两线电压的改变被差分消除,因此抗干扰能力更强;
  • 具有强大的组网功能,在串口基础协议之上还制定MODBUS协议;
    • MODBUS协议:使用基本数据包组合成通讯帧格式的高层应用协议(基于数据包或字节);
  • 接口电平低,不易损坏芯片;
  • 传输效率高;
  • 传输距离远,支持节点多;

3    通信电路

  • RS485与别的串口不同,别的串口需要TX连接另一设备的RX、RX连接另一设备的TX。而485是A线连接A线,B线连接B线;
  • 需要连接匹配电阻以提高稳定性;
  • 芯片的COMS电平或TTL电平需要485收发器(电平转换芯片)进行响应的电平转换;
  • 连接一般使用双绞线以进一步抗干扰;

4    RS485电平转换芯片(以TP8485为例)

  • RS485的电平转换芯片的重要引脚:
  • R19和R22是两个偏置电阻,用来保证总线空闲时,UAB大于0.2V,避免压差不定导致逻辑混乱。
  • 收发的电平情况:

5    配置

5.1    相关HAL库函数

5.2    配置步骤

  • 其实就是和前面的串口基本一致,只不过需要自行配置并使用一个额外的GPIO口来选择485收发器的发送/接收模式;

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 年薪100万华为员工爆料:华为不存在40岁危机,原因很简单,40岁你都可以退休了!累计375万的股票,每年分红75万,直接养老了
  • redis学习笔记 ——redis中的四大特殊数据结构
  • 第四章(先学习第五章)-openmv和arduino和stm32的通信
  • python把dbc转换成excel
  • Python 中的 `AsyncIterable` 和 `AsyncGenerator`:对比、优缺点及使用场景
  • 兔子序列(c语言)
  • RabbitMQ 常见问题与故障排查
  • 推荐一款强大的 macOS 剪贴板增强工具:CleanClip
  • 设计模式 13 责任链模式
  • 简而不减,极致便捷!泰极预付费解决方案震撼上市
  • Flink CDC读取Mysql时,Decimal类型数据异常,变成了字符串(源码解析及解决方案)
  • 19行为型设计模式——备忘录模式
  • qml tabbar tabbutton toolbar toolbutton 的区别
  • Error: Can not import paddle core while this file exists
  • 【STM32单片机_(HAL库)】3-4-1【中断EXTI】【智能排队控制系统】LCD1602显示字符串
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • ECS应用管理最佳实践
  • log4j2输出到kafka
  • Spring Boot MyBatis配置多种数据库
  • vuex 笔记整理
  • 包装类对象
  • 程序员该如何有效的找工作?
  • 初识 webpack
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 对象引论
  • 翻译--Thinking in React
  • 后端_ThinkPHP5
  • 简单数学运算程序(不定期更新)
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 区块链共识机制优缺点对比都是什么
  • 小程序01:wepy框架整合iview webapp UI
  • 阿里云ACE认证学习知识点梳理
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • ​ArcGIS Pro 如何批量删除字段
  • #pragma pack(1)
  • (3)STL算法之搜索
  • (35)远程识别(又称无人机识别)(二)
  • (C++)八皇后问题
  • (PySpark)RDD实验实战——取最大数出现的次数
  • (Ruby)Ubuntu12.04安装Rails环境
  • (笔记)M1使用hombrew安装qemu
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (简单) HDU 2612 Find a way,BFS。
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (一)Docker基本介绍
  • ***监测系统的构建(chkrootkit )
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .net 无限分类
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • @SuppressWarnings注解
  • [Angularjs]ng-select和ng-options