当前位置:网站首页 > C++编程 > 正文

console线和串口线一样吗(串口和console口的区别)



串口呢,作为硬件调试的时候,是很有用的,我觉得搞嵌入式是经常和串口打交道的

串口(Serial Port)是一种用于计算机和外部设备之间进行数据通信的接口。它通过串行通信方式传输数据,即一次只传输一个比特(位)。串口通信在早期的计算机系统中非常常见,用于连接键盘、鼠标、调制解调器、打印机等外部设备。

串口的主要特点包括:

  1. 简单性:串口通信协议相对简单,易于实现。
  2. 低成本:串口通信的硬件成本较低,适合一些低成本的应用。
  3. 广泛应用:虽然现代计算机更多地使用USB等高速接口,但串口在工业控制、嵌入式系统和调试设备中仍然广泛应用。

常见的串口类型包括 RS-232、RS-485 和 RS-422。RS-232 是最常见的串口标准,广泛用于个人计算机和各种嵌入式系统中。

总之,串口是一种重要的通信接口,尽管在现代计算机中不再那么常见,但在许多专业和工业应用中仍然非常有用。

在很多时候,我们经常忘记串口作为一种通信协议,是有自己的时序的,不过在使用串口的过程中,时序的特点以及需求,已经被波特率替代了,所以我们了解串口,不需要去了解他的时序,了解波特率就可以了

串口通信确实有时序(timing),这是因为串口通信是基于时间的。在串口通信中,数据以一定的速率(波特率,单位为比特每秒,bps)发送和接收。波特率决定了每秒钟传输的比特数。

以下是串口通信中的一些关键时序参数:

  1. 波特率(Baud Rate):决定了数据传输的速度。常见的波特率包括 9600 bps、19200 bps、 bps 等。
  2. 数据位(Data Bits):通常是 8 位,表示每个字符的长度。
  3. 停止位(Stop Bits):通常是 1 位或 2 位,用于标识一个字符的结束。
  4. 奇偶校验位(Parity Bit):用于检测传输错误,可以是无校验(None)、奇校验(Odd)或偶校验(Even)。

在串口通信中,这些参数需要在发送方和接收方之间一致,才能正确地进行数据传输。如果这些参数不匹配,可能会导致数据传输错误或通信失败。

总之,串口通信有明确的时序要求,这些时序参数确保数据在发送和接收端之间能够正确同步和解析。

波特率: 9600 bps

数据位: 8 位

停止位: 1 位

奇偶校验位: Odd

时序示意图:

  1. Start Bit(开始位):高电平,表示新的数据传输开始(1 bit)
  2. Data Bits(数据位):8 个比特,表示要传输的数据(8 bits)
    • 高电平表示 1,低电平表示 0
  3. Parity Bit(奇偶校验位):1 个比特,用于检测传输错误(1 bit)
    • 高电平表示奇校验,低电平表示偶校验
  4. Stop Bit(停止位):1 个比特,表示数据传输结束(1 bit)
    • 高电平表示停止位

时序示例:

假设要传输的数据为 0x12(00010010),波特率为 9600 bps。

  1. Start Bit:高电平(1 bit)
  2. Data Bits
    • 00010010(8 bits)
      • 高电平(1):0
      • 低电平(0):0
      • 高电平(1):0
      • 低电平(0):1
      • 高电平(1):0
      • 低电平(0):0
      • 高电平(1):1
      • 低电平(0):0
  3. Parity Bit:高电平(1 bit)
    • 奇校验,因为数据中有奇数个 1
  4. Stop Bit:高电平(1 bit)

总共传输 11 个比特(1 + 8 + 1 + 1),每秒钟传输 9600 个比特。

所以呢,数据位很简单啦~

奇偶校验位虽然比较复杂,但是呢,一般不用,所以

奇偶校验位(Parity Bit)是串口传输中的一种错误检测机制,它用于检测传输数据中的错误。奇偶校验位是一种简单的错误检测方法,它通过在数据中添加一个额外的比特来检测数据是否包含错误。

奇偶校验位的计算过程如下:

  1. 计算数据中 1 的个数(Odd Count):将要传输的数据中的 1 个数计数。
  2. 如果 Odd Count 是奇数,那么添加一个 1 作为奇校验位(Odd Parity Bit)。
  3. 如果 Odd Count 是偶数,那么添加一个 0 作为偶校验位(Even Parity Bit)。

奇偶校验位的作用是:

  1. 检测数据中的错误:如果数据中包含错误,奇偶校验位将不同于预期的值。
  2. 检测数据的完整性:如果数据中缺少或添加了比特,奇偶校验位将不同于预期的值。

奇偶校验位的类型有两种:

  1. 奇校验(Odd Parity):如果数据中 1 的个数是奇数,那么添加一个 1 作为奇校验位。
  2. 偶校验(Even Parity):如果数据中 1 的个数是偶数,那么添加一个 0 作为偶校验位。

奇偶校验位的优缺点:

优点:

  • 简单易行,计算成本低
  • 可以检测简单的错误,例如数据中缺少或添加了比特

缺点:

  • 不可靠,无法检测复杂的错误,例如数据中的某些比特被损坏
  • 可能会产生误报,例如数据中包含多个错误时,奇偶校验位可能不同于预期的值

总的来说,奇偶校验位是一种简单的错误检测方法,但它并不是 foolproof 的解决方案。在实际应用中,通常会使用其他错误检测和纠正方法来确保数据的可靠传输。

各位,请把目光集中,重点来了

其实呢串口到现在已经发展出了很多不同的通信协议,咱们主要还是以stm32的为主

首先,串口本身可以是全双工、半双工或单工,取决于具体的硬件实现和通信协议。

串口的数据线一般为两条一条TX输出一条RX接受

  

如图~串口的特点呢就是一方的RX————TX另一方的

电源呢随意,能通电就行,注意共地就ok

 

串口作为一种通信协议,又有着不同的标准,stm32一般使用TTL协议

5VTTL电平标准

2.4V~5V:逻辑1。

0~0.4V: 逻辑0。

TTL信号的抗干扰能力较差,所以其通信距离很短,一般只能用于一个电路板上的两个不同芯片之间的通信。 

 

重点呢还是这张图;

其实呢仔细一看,发送和接受的都有着同样的配置,唯一的区别呢就是接收多了一个唤醒单元

  1. 通过在USART_CR1寄存器上置位UE位来激活USART
  2. 编程USART_CR1的M位来定义字长
  3. 在USART_CR2中编程停止位的位长
  4. 如果采用多缓冲器通信,配置USART_CR3中的DMA使能位(DMAT)。按多缓冲器通信中的描述配置DMA寄存器,关于DMA下期再详细讲解。
  5. 利用USART_BRR寄存器选择要求的波特率。
  6. 设置USART_CR1中的TE位,作为第一次数据发送
  7. 把要发送的数据写进USART_DR寄存器(此动作清除TXE位)。在只有一个缓冲器的情况下,对每个待发送的数据重复步骤7。
  8. 。当需要关闭USART或需要进入停机模式之前,需要确认传输结束,避免破坏最后一次传输。

usart.h

 
  

usart.c

 
  

 

到此这篇console线和串口线一样吗(串口和console口的区别)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • cnn无监督分类(无监督分类算法有哪些)2025-06-29 20:27:05
  • c++单向链表逆序(单链表逆序c语言)2025-06-29 20:27:05
  • dhc英文怎么读(dohc怎么读)2025-06-29 20:27:05
  • lxc源码(lxc源码分析)2025-06-29 20:27:05
  • tcp工具支持ipv6吗?(tcp/ipv6)2025-06-29 20:27:05
  • cp1h如何连接电脑(cpm1a和电脑连接)2025-06-29 20:27:05
  • kubectl 配置文件(kubeadm配置文件)2025-06-29 20:27:05
  • msvcp140为什么会丢失(msvcp140dll丢失会有什么影响)2025-06-29 20:27:05
  • git clone指定文件(git clone bundle)2025-06-29 20:27:05
  • webflux太难用了(webflux webclient)2025-06-29 20:27:05
  • 全屏图片