串口通信小结

AI助手已提取文章相关产品:

1、电脑上自带的DB9串口都是RS232,如果要与485串口的设备通信,需要用到232转485转换器

2、RS232是单站通讯能力,上位机的一个RS232串口只能接一个RS232设备,要接多个RS232设备就要多个串口。RS485是多站通讯能力,一根总线可以用并联的方式(正极与正极相连,负极与负极相连)接入多个RS485设备。

3、RS232是全双工的,可以同时接收和发送数据,RS485是半双工的,可以接收也可以发送,但是同一时间总线只能处于接收或者发送状态。对于485总线上的多个设备来说,如果都随意的收发数据,必定会造成总线冲突。为了避免总线冲突,485通讯通常采用主从模式,一台设备为主机(通常是上位机),其他设备都是从机,只有主机允许主动发送数据给从机,从机在收到主机的数据后,如果要求响应,才向主机发送数据。因此485总线是依靠通讯协议来避免总线冲突的。

4、485总线上任意一个设备发送的数据,其他设备都会收到,如何让指定的设备处理这条数据而其他设备不做反应呢,同样的,也是依靠通讯协议来解决。首先每个接入485总线的设备都应该设置一个唯一标识符(地址),然后规定所有设备发出的逻辑包都应该指定要送达的目标设备的地址,这样每个设备在解析收到的逻辑包之后,只有目标地址等于自己的地址的逻辑包才处理,不等于自己的地址则直接丢弃。

5、485总线切换接收和发送状态是需要时间的,通常为 1/波特率 秒,也就是说设备在接收到数据后,要等待一点时间再发送数据,因为存在时钟误差,这个等待时间要稍稍大于 1/波特率 秒,如果不等待而立即发送,有可能会失败。


推荐一篇介绍串口通讯基础的好文章:http://www.gkquan.com/article/detail/5138

主要讲了串口通信基础知识、DB9标准端口、RS232与RS485区别、接线方式等内容,图文并茂,简洁实用,属于无废话系列文章


您可能感兴趣的与本文相关内容

### 单片机串口通信双机通信实验总结与关键点分析 单片机串口通信中的双机通信实验是一个经典的实践项目,旨在深入理解串行通信的工作原理及其实际应用。以下是对此类实验的关键点和总结的详细解析。 #### 1. 实验核心概念 双机通信是指两台单片机之间通过串口进行数据交换的过程。这种通信基于异步串行通信协议,其基本要素包括波特率匹配、帧格式一致性以及正确的硬件连接[^1]。 #### 2. 关键寄存器配置 - **SBUF 寄存器**: 用于存储发送或接收的数据字节。 - **SCON 控制寄存器**: 定义了串口的操作模式和其他重要参数,如多机通信控制位(SM2)、接收允许位(REN)、第9位数据(TB8 和 RB8)、发送中断标志(TI)及接收中断标志(RI)[^1]。 初始化代码如下所示: ```c #include <reg51.h> void initUART() { TMOD = 0x20; // 设置T1为模式2(自动重装载) SCON = 0x50; // 配置为方式1,允许接收 PCON = 0x00; // 不启用倍速模式 TH1 = 0xFD; // 波特率为9600 bps TL1 = 0xFD; TR1 = 1; // 启动定时器T1 } ``` #### 3. 硬件连接细节 在具体的双机通信实验中,通常会使用MAX485芯片或其他类似的RS-485驱动器件来增强信号传输能力。每块单片机都需要配备一个485模块,并将其A/B引脚相互对接形成物理链路。当一方处于发送状态时,另一方应切换到接收模式以确保双向通讯顺畅[^2]。 #### 4. 软件流程概述 软件设计主要围绕以下几个方面展开: - **波特率设置**: 利用定时器T1生成精确的时间间隔作为采样基准。 - **中断处理**: 当检测到TI 或 RI 标志变化时触发相应动作,例如读取/写入SBUF。 - **主程序逻辑**: 循环等待特定条件满足后再继续下一步骤,保持整体运行流畅性[^3]。 示例代码片段展示了简单的回显功能实现方法: ```c while (!RI); // 等待接收完成 RI = 0; // 清除接收标志 P1 = SBUF; // 将接收到的内容保存至P1端口中暂存 while (!TI); // 等待发送完毕 TI = 0; // 清零发送标志 SBUF = P1; // 把之前记录下来的数据重新送回到对方那里去 ``` #### 5. 常见问题排查指南 - 如果发现双方无法正常交流,则首先要核实是否采用了相同的波特率值; - 检查连线是否存在虚焊现象或者极性颠倒情况; - 对于涉及到外部设备的情况还要注意供电电压等级差异可能带来的兼容性隐患等问题[^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值