串口一直在接收东西_STM32第五章-串口通讯详解

本文详细介绍了串口通信的基础概念,包括同步与异步通信、电平信号与差分信号、串行接口与并行接口。接着探讨了串口通信的波特率、数据位、奇偶校验位和停止位,以及RS232电平和TTL电平。此外,还讲解了STM32串口通信的配置步骤,包括时钟使能、GPIO复用、参数初始化和中断服务函数。最后,通过示例展示了如何编写串口通信程序,包括发送和接收数据。
摘要由CSDN通过智能技术生成

92469fac44179aaf3f7105d08218c5c8.png

串口通信是串行通信里面的异步方式。串行通信是相对于并行通信来说的。串口是一个事实存在的东西,比如DB9接口。 串口通讯里面的波特率,实际上是比特率。如果这两点你还不是很清楚地话,好好往下看。

通信涉及的几个基础概念

同步通信和异步通信

(1)、同步和异步的区别:简单来说就是发送方和接收方按照同一个时钟节拍工作就叫同步,发送方和接收方没有统一的时钟节拍、而各自按照自己的节拍工作就叫异步。 (2)、同步通信中,通信双方按照统一节拍工作,所以配合很好;一般需要发送方给接收方发送信息同时发送时钟信号,接收方根据发送方给它的时钟信号来安排自己的节奏。同步通信用在通信双方信息交换频率固定,或者经常通信时。带时钟同步信号传输。如-SPI,IIC通信。 (3)、异步通信又叫异步通知。在双方通信的频率不固定时(有时 3ms 收发一次,有时 3 天才收发一次)不适合使用同步通信,而适合异步通信。异步通信时接收方不必一直在意发送方,发送方需要发送信息时会首先给接收方一个信息开始的起始信号,接收方接收到起始信号后就认为后面紧跟着的就是有效信息,才会开始注意接收信息,直到收到发送方发过来的结束标志。异步通信:不带时钟同步信号。如·UART(通用异步收发器),单总线。

电平信号和差分信号

(1)、电平信号和差分信号是用来描述通信线路传输方式的。也就是说如何在通信线路上表达 1 和 0. (2)、电平信号的传输线中有一个参考电平线(一般是 GND),然后信号线上的信号值是由信号线电平和参考电平线的电压差决定。 (3)、差分信号的传输线中没有参考电平,所有都是信号线。然后 1 和 0 的表达靠信号线之间的电压差。 总结:电平信号的 2 根通信线之间的电平差异容易受到干扰,传输容易失败;差分信号不容易受到干扰因此传输质量比较稳定,现代通信一般都使用差分信号,电平信号几乎没有了。总结 2:看起来似乎相同根数的通信线下,电平信号要比差分信号要快;但是实际还是差分信号快,因为差分信号抗干扰能力强,因此 1 个发送周期更短。

并行接口和串行接口

(1)、串行、并行主要是考虑通信线的根数,就是发送方和接收方同时可以传递的信息量的多少 (2)、譬如在电平信号下,1 根参考电平线+1 根信号线可以传递 1 位二进制;如果我们有 3根线(2 根信号线+1 根参考线)就可以同时发送 2 位二进制;如果想同时发送 8 位二进制就需要 9 根线。 (3)、在差分信号下,2 根线(彼此差分)可以同时发送 1 位二进制;如果需要同时发送 8 位二进制,需要 16 根线。 总结:听起来似乎并行接口比串行接口要快(串行接口一次只能发送 1 位二进制,而并行接口一次可以发送多位二进制)要更优秀;但是实际上串行接口才是王道,用的比较广。因为更省信号线,而且对传输线的要求更低、成本更低;而且串行时可以通过提高通信速度来提高总体通信性能,不一定非得要并行。 总结:异步、串行、差分,譬如 USB 和网络通信更胜一筹。

558f7032ce04b0433e7f543a3b2dec3a.png

串口通信涉及的基础概念

异步、电平信号、串行

(1)、异步:串口通信的发送方和接收方之间是没有统一的时钟信号的。 (2)、电平信号:串口通信出现的时间较早,速率较低,传输的距离较近,所以干扰还不太明显,因此当时使用了电平信号传输。后期出现的传输协议都改成差分信号传输了。 (3)、串行通信:串口通信每次同时只能传输 1 个二进制位

RS232 电平和 TTL 电平

(1)电平信号是用信号线电平减去参考线电平得到电压差,这个电压差决定了传输值是 1 还是 0. (2)在电平信号时多少 V 代表 1,多少 V 代表 0 不是固定的,取决于电平标准。譬如 RS232电平中-3V~-15V 表示 1;+3~+15V 表示 0;TTL 电平则是+5V 表示 1,0V 表示 0. (3)不管哪种电平都是为了在传输线上表示 1 和 0.区别在于适用的环境和条件不同。RS232的电平定义比较大,适合干扰大、距离远的情况;TTL 电平电压范围小,适合距离近且干扰小的情况。 (4)我们台式电脑后面的串口插座就是 RS232 接口的,在工业上用串口时都用这个,传输距离小于 15 米;TTL 电平一般用在电路板内部两个芯片之间。 (5)对编程来说,RS232 电平传输还是 TTL 电平是没有差异的。所以电平标准对硬件工程师更有意义,而软件工程师只要略懂即可。(把 TTL 电平和 RS232 电平混接是不可以的)

e8ed2f8f9b962f2c7372a56d491aae66.png

8d523c4fae4c4c7349ca708daec5a203.png

波特率

(1)衡量通讯性能的一个非常重要的参数就是通讯速率,通常以比特率(Bitrate)来表示,即每秒钟传输的二进制位数,单位为比特每秒(bit/s)。容易与比特率混淆的概念是“波特率”。(Baudrate),它表示每秒钟传输了多少个码元。而码元是通讯信号调制的概念,通讯中常用时间间隔相同的符号来表示一个二进制数字,这样的信号称为码元。如常见的通讯传输中,用 0V表示数字 0,5V 表示数字 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值