【单片机】串口UART通信详解介绍(超详细教程,简单好学,看了秒懂)

标准串口样子

特点:只需要一对数据线,大大降低成本,适用于远距离通信,传输速度慢

传输方式

单工:使用一根传输线,发送和接受方已经规定好

半双工:使用一根传输线,发送和接收方身份可以互换,但是一端不能同时是接受和发送方

全双工:两根传输线,一根用来接受,一根用来发送

传输通信方式:

异步通信:(一般都是这个)

数据一位一位地顺序传送,起始位开始,停止位结束,字符之间没有固定的时间间隔要求

位:停止位,数据位,校验位(奇校验 偶校验)

1.停止位和空闲位都规定位高电平

2.停止位:1比特,或1比特半,或2比特的停止位,后边是不定长的空闲位

3.双方要使用同一个波特率设置

(为什么没有时间要求,仍然要设置波特率呢:每个消息分为几种不同的位,为了保证位同步,保证发送的单位字节传输成功

步通信其实也是有时序要求的。只是要求较低,保证位同步即可。为了建立基本的通信,如果两个人语速不一样,有时候相差太大,会容易误解的)

异步通信还要设置波特率?_深入理解同步/异步通信_xuewei_Li的博客-CSDN博客

同步通信

所谓同步通信是指在约定的通信速率下,发送端和接收端的时钟信号频率和相位始终保持一致(同步),这就保证了通信双方在发送和接收数据时具有完全一致的定时关系。

同步通信把许多字符组成一个信息组,或称为信息帧,每帧的开始用同步字符来指示。由于发送和接收的双方采用同一时钟,所以在传送数据的同时还要传送时钟信号,以便接收方可以用时钟信号来确定每个信息位。如果没有数据传输,线路上采用专用的“空闲字符”或者同步字符填充。因为数据位比例大,位数不受限制,通信效率高,但是需要精确的同步时钟,成本比较高。

比较重要的引脚:

RXD:接受外部设备传来的数据

TXD:将计算机的数据发送给外部数据

GND:接地

注意:不同标准的接口必须使用转接口

几种标准:

RS-232 :最早的标准 接口22根线 25D型插头座 点对点 距离和速度都很慢 适合本地设备通信

RS-422 :支持点对多双向通信 最大传输距离1219 传输速率10mb/s,只有在短距离才能传输速度快

RS-485 :多点双向通信 做多连接32个设备 速度距离和RS-422差不多

注意:不要带电插拔串口,容易损坏

基本配置步骤

时钟初始化

开启中断,中断函数(非必要)

初始化gpio端口配置

1.串口IO引脚配置 选择引脚

2.允许使用复用功能

3.复用推挽输出

4.上拉的电平

初始化串口配置

1.波特率设置

2.设置串口数据格式 8位 9位

3.设置停止位长度

4.设置有无校验位

5.硬件数据流控制  处理速度不匹配导致的数据丢失

6.选择串口模式:接受 发送

接受数据,发送数据

几个常见标志位

1.接受数据寄存器非空标志位 0没有数据 1收到数据

2.发送数据寄存器空标志位 0还没有发送 1已经发送

3.发送完成标志位  0发送还未完成  1发送完成

串口通信注意点:

1.初始化完成,立刻清除缓冲区

2.windows换行是\r\n

3.串口轮询接受,如果速度不够快,就会导致丢掉一部分字符

  • 4
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值