精华内容
下载资源
问答
  • 串口怎么停止
    千次阅读
    2020-02-20 15:53:04

    当我配置数据位配置为8位,同时配置停止位为1.5位时,编译器提示参数出错。

    原因:1、Windows不支持该配置。MSDN中明确规定,数据位只能为5至8位。

              2、当数据位为6、7、8位时,停止位只能配置成1或2位;同样当数据位为5位时,停止位只能为1或1.5位

    更多相关内容
  • 串口串行接口(serial port)的简称,也称为串行通信接口或COM接口。串口通信是指采用串行通信协议(serial communication)在一条信号线上将数据一个比特一个比特地逐位进行传输的通信模式。串口按电气标准及协议来...

    串口是串行接口(serial port)的简称,也称为串行通信接口或COM接口。

    串口通信是指采用串行通信协议(serial communication)在一条信号线上将数据一个比特一个比特地逐位进行传输的通信模式。

    串口按电气标准及协议来划分,包括RS-232-C、RS-422、RS485等。

    1.串行通信

    在串行通信中,数据在1位宽的单条线路上进行传输,一个字节的数据要分为8次,由低位到高位按顺序一位一位的进行传送。

    串行通信的数据是逐位传输的,发送方发送的每一位都具有固定的时间间隔,这就要求接收方也要按照发送方同样的时间间隔来接收每一位。不仅如此,接收方还必须能够确定一个信息组的开始和结束。

    常用的两种基本串行通信方式包括同步通信和异步通信。

    1.1串行同步通信

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

    同步通信把许多字符组成一个信息组(信息帧),每帧的开始用同步字符来指示,一次通信只传送一帧信息。在传输数据的同时还需要传输时钟信号,以便接收方可以用时针信号来确定每个信息位。

    同步通信的优点是传送信息的位数几乎不受限制,一次通信传输的数据有几十到几千个字节,通信效率较高。同步通信的缺点是要求在通信中始终保持精确的同步时钟,即发送时钟和接收时钟要严格的同步(常用的做法是两个设备使用同一个时钟源)。

    在后续的串口通信与编程中将只讨论异步通信方式,所以在这里就不对同步通信做过多的赘述了。

    1.2串行异步通信

    异步通信(ASYNC:asynchronous data communication),又称为起止式异步通信,是以字符为单位进行传输的,字符之间没有固定的时间间隔要求,而每个字符中的各位则以固定的时间传送。

    在异步通信中,收发双方取得同步是通过在字符格式中设置起始位和停止位的方法来实现的。具体来说就是,在一个有效字符正式发送之前,发送器先发送一个起始位,然后发送有效字符位,在字符结束时再发送一个停止位,起始位至停止位构成一帧。停止位至下一个起始位之间是不定长的空闲位,并且规定起始位为低电平(逻辑值为0),停止位和空闲位都是高电平(逻辑值为1),这样就保证了起始位开始处一定会有一个下跳沿,由此就可以标志一个字符传输的起始。而根据起始位和停止位也就很容易的实现了字符的界定和同步。

    显然,采用异步通信时,发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,可以互不同步。

    下面简单的说说异步通信的数据发送和接收过程。

    1.2.1异步通信的数据格式

    在介绍异步通信的数据发送和接收过程之前,有必要先弄清楚异步通信的数据格式。

    异步通信规定传输的数据格式由起始位(start bit)、数据位(data bit)、奇偶校验位(parity bit)和停止位(stop bit)组成,如图1所示(该图中未画出奇偶校验位,因为奇偶检验位不是必须有的,如果有奇偶检验位,则奇偶检验位应该在数据位之后,停止位之前)。

    图1 异步通信数据格式

    (1)起始位:起始位必须是持续一个比特时间的逻辑0电平,标志传输一个字符的开始,接收方可用起始位使自己的接收时钟与发送方的数据同步。

    (2)数据位:数据位紧跟在起始位之后,是通信中的真正有效信息。数据位的位数可以由通信双方共同约定,一般可以是5位、7位或8位,标准的ASCII码是0~127(7位),扩展的ASCII码是0~255(8位)。传输数据时先传送字符的低位,后传送字符的高位。

    (3)奇偶校验位:奇偶校验位仅占一位,用于进行奇校验或偶校验,奇偶检验位不是必须有的。如果是奇校验,需要保证传输的数据总共有奇数个逻辑高位;如果是偶校验,需要保证传输的数据总共有偶数个逻辑高位。

    举例来说,假设传输的数据位为01001100,如果是奇校验,则奇校验位为0(要确保总共有奇数个1),如果是偶校验,则偶校验位为1(要确保总共有偶数个1)。

    由此可见,奇偶校验位仅是对数据进行简单的置逻辑高位或逻辑低位,不会对数据进行实质的判断,这样做的好处是接收设备能够知道一个位的状态,有可能判断是否有噪声干扰了通信以及传输的数据是否同步。

    (4)停止位:停止位可以是是1位、1.5位或2位,可以由软件设定。它一定是逻辑1电平,标志着传输一个字符的结束。

    (5)空闲位:空闲位是指从一个字符的停止位结束到下一个字符的起始位开始,表示线路处于空闲状态,必须由高电平来填充。

    1.2.2异步通信的数据发送过程

    清楚了异步通信的数据格式之后,就可以按照指定的数据格式发送数据了,发送数据的具体步骤如下:

    (1)初始化后或者没有数据需要发送时,发送端输出逻辑1,可以有任意数量的空闲位。

    (2)当需要发送数据时,发送端首先输出逻辑0,作为起始位。

    (3)接着就可以开始输出数据位了,发送端首先输出数据的最低位D0,然后是D1,最后是数据的最高位。

    (4)如果设有奇偶检验位,发送端输出检验位。

    (5)最后,发送端输出停止位(逻辑1)。

    (6)如果没有信息需要发送,发送端输出逻辑1(空闲位),如果有信息需要发送,则转入步骤(2)。

    1.2.3异步通信的数据接收过程

    在异步通信中,接收端以接收时钟和波特率因子决定每一位的时间长度。下面以波特率因子等于16(接收时钟每16个时钟周期使接收移位寄存器移位一次)为例来说明。

    (1)开始通信,信号线为空闲(逻辑1),当检测到由1到0的跳变时,开始对接收时钟计数。

    (2)当计到8个时钟的时候,对输入信号进行检测,若仍然为低电平,则确认这是起始位,而不是干扰信号。

    (3)接收端检测到起始位后,隔16个接收时钟对输入信号检测一次,把对应的值作为D0位数据。

    (4)再隔16个接收时钟,对输入信号检测一次,把对应的值作为D1位数据,直到全部数据位都输入。

    (5)检验奇偶检验位。

    (6)接收到规定的数据位个数和校验位之后,通信接口电路希望收到停止位(逻辑1),若此时未收到逻辑1,说明出现了错误,在状态寄存器中置“帧错误”标志;若没有错误,对全部数据位进行奇偶校验,无校验错时,把数据位从移位寄存器中取出送至数据输入寄存器,若校验错,在状态寄存器中置“奇偶错”标志。

    (7)本帧信息全部接收完,把线路上出现的高电平作为空闲位。

    (8)当信号再次变为低时,开始进入下一帧的检测。

    以上就是异步通信中数据发送和接收的全过程了。

    1.3几个概念

    为了更好的理解串口通信,我们还需要了解几个串口通信当中的基本概念。

    (1)发送时钟:发送数据时,首先将要发送的数据送入移位寄存器,然后在发送时钟的控制下,将该并行数据逐位移位输出。

    (2)接收时钟:在接收串行数据时,接收时钟的上升沿对接收数据采样,进行数据位检测,并将其移入接收器的移位寄存器中,最后组成并行数据输出。

    (3)波特率因子:波特率因子是指发送或接收1个数据位所需要的时钟脉冲个数。

    2.串口接头

    常用的串口接头有两种,一种是9针串口(简称DB-9),一种是25针串口(简称DB-25)。每种接头都有公头和母头之分,其中带针状的接头是公头,而带孔状的接头是母头。9针串口的外观如图2所示。

    图2 DB-9外观图

    由图2可以看出,在9针串口接头中,公头和母头的管脚定义顺序是不一样,这一点需要特别注意。那么,这些管脚都有什么作用呢?9针串口和25针串口常用管脚的功能说明如图3所示。

    图3 9针串口和25针串口常用管脚功能说明

    3.RS-232C标准

    常用的串行通信接口标准有RS-232C、RS-422、RS-423和RS-485。其中,RS-232C作为串行通信接口的电气标准定义了数据终端设备(DTE:data terminal equipment)和数据通信设备(DCE:data communication equipment)间按位串行传输的接口信息,合理安排了接口的电气信号和机械要求,在世界范围内得到了广泛的应用。

    3.1电气特性

    RS-232C对电器特性、逻辑电平和各种信号功能都做了规定,如下:

    在TXD和RXD数据线上:

    (1)逻辑1为-3~-15V的电压

    (2)逻辑0为3~15V的电压

    在RTS、CTS、DSR、DTR和DCD等控制线上:

    (1)信号有效(ON状态)为3~15V的电压

    (2)信号无效(OFF状态)为-3~-15V的电压

    由此可见,RS-232C是用正负电压来表示逻辑状态,与晶体管-晶体管逻辑集成电路(TTL)以高低电平表示逻辑状态的规定正好相反。

    3.2信号线分配

    RS-232C标准接口有25条线,其中,4条数据线、11条控制线、3条定时线以及7条备用和未定义线。那么,这些信号线在9针串口和25针串口的管脚上是如何分配的呢?9针串口和25针串口信号线分配如图4所示。

    图4 9针串口和25针串口信号线分配示意图

    下面对这些信号线做个简单的介绍。

    (1)数据装置准备好(DSR),有效状态(ON)表示数据通信设备处于可以使用状态。

    (2)数据终端准备好(DTR),有效状态(ON)表示数据终端设备处于可以使用状态。

    这两个设备状态信号有效,只表示设备本身可用,并不说明通信链路可以开始进行通信了,能否开始进行通信要由下面的一些控制信号决定。

    (3)请求发送(RTS),用来表示数据终端设备(DTE)请求数据通信设备(DCE)发送数据。

    (4)允许发送(CTS),用来表示数据通信设备(DCE)已经准备好了数据,可以向数据终端设备(DTE)发送数据,是对请求发送信号RTS的响应。

    请求发送(RTS)和允许发送(CTS)用于半双工的通信系统中,在全双工的系统中,不需要使用请求发送(RTS)和允许发送(CTS)信号,直接将其置为ON即可。

    (5)数据载波检出(DCD),用于表示数据通信设备(DCE)已接通通信链路,告知数据终端设备(DTE)准备接收数据。

    (6)振铃指示(RI),当数据通信设备收到交换台送来的振铃呼叫信号时,使该信号有效(ON),通知终端,已被呼叫。

    (7)发送数据(TXD),数据终端设备(DTE)通过该信号线将串行数据发送到数据通信设备(DCE)。

    (8)接收信号(RXD),数据终端设备(DTE)通过该信号线接收从数据通信设备(DCE)发来的串行数据。

    (9)地线(SG、PG),分别表示信号地和保护地信号线。

    展开全文
  • 串口串行接口(serialport)的简称,也称为串行通信接口或COM接口。串口通信是指采用串行通信协议(serialcommunicaTIon)在一条信号线上将数据一个比特一个比特地逐位进行传输的通信模式。串口按电气标准及协议来...
  • 这个问题 可以做一个串口数据传输实验 用示波器查看数据线波形,来理解起始信号,停止信号 以及在没有数据传输时,的空闲信号。 下面这篇文章来解决疑惑 我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去...

    这个问题
    可以做一个串口数据传输实验

    用示波器查看数据线波形,来理解起始信号,停止信号
    以及在没有数据传输时,的空闲信号。

    下面这篇文章来解决疑惑

    我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《一文读懂串口(波形分析、起始位、数据位、停止位、空闲位)》, 一起来围观吧 https://blog.csdn.net/weixin_43319854/article/details/109844860?utm_source=app&app_version=4.21.0&code=app_1562916241&uLinkId=usr1mkqgl919blen

    展开全文
  • 串口一、串口串行接口)二、异步串口(以下统称串口)三、重要参数1、波特率2、报文格式四、波形1、具体连接2、波形分析2.1 发送12.2 发送65 本文使用 STM32F406ZGT6单片机基于标准库进行测试 一、串口串行接口...


    本文使用 STM32F407ZGT6单片机基于标准库进行测试

    一、串口(串行接口)

    概念: 串行接口 (英文:Serial Interface) 是指数据一位一位地顺序传送,一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。
    特点: 串行通讯的特点是:数据位的传送,按位顺序进行,最少只需一根传输线即可完成;成本低但传送速度慢。串行通讯的距离可以从几米到几千米。
    优点: 通信线路简单,只要一对传输线就可以实现双向通信,可以直接利用电话线作为传输线,从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。

    分类: 串口分为同步串行接口和异步串行接口

    • 同步串行接口(英文:SynchronousSerialInterface,SSI),即通信双方共用一个时钟,是一种常用的工业用通信接口。
    • 异步串行接口(英文:Universal Asynchronous Receiver/Transmitter, UART),通信双方通过使用相同的波特率来实现同步,采用固定的通信格式,数据以相同的帧格式进行传送,这里我们主要讨论异步串行接口。

    二、异步串口(以下统称串口)

    串口有TTL和RS232两种电平,它们的具体区别是:

    电平TTLRS232
    输出低电平Lo <= 0.8V+3V <= Lo <= +15V
    输出高电平Ho >= 2.4V-15V <= Ho <= -3V
    输入低电平Li <= 1.2V+3V <= Li <= +15V
    输入高电平Hi >= 2.0V-15V <= Hi <= -3V

    三、重要参数

    1、波特率

    串口通信最重要的是波特率,它实现了通信双方的时序同步。
    波特(Baud)即调制速率,指的是有效数据讯号调制载波的速率,即单位时间内载波调制状态变化的次数。
    波特率表示每秒钟传送的码元符号的个数,它是对符号传输速率的一种度量,它用单位时间内载波调制状态改变的次数来表示,1波特即指每秒传输1个符号。常用的波特率为:115200 、9600。

    2、报文格式

    串口的报文数据由:
    起始位(1bit)+ 数据位(5~8bit)+ 奇偶校验位(1bit)+ 停止位(1~1.5bit)

    2.1、起始位

    在发送有效数据前,无需配置,会自动产生1bit 逻辑“0”的低电平的起始位,表示串口数据传输开始,之后开始发送有效数据。

    2.2、数据位

    数据位,决定了通信过程中传输的有效数据位数,数据位通常有5、6、7 、8 bit,需要根据需要进行相应的配置,这里我选择8位字长。还需要注意的是有效数据在报文中的存放顺序是以LSB还是以MSB进行存放,这里我的是LSB,在这里插入图片描述

    2.3、奇偶校验位

    奇偶校验位,因为在通信过程中易受到外部干扰而导致数据出现偏差,所以在有效数据之后增加了校验位来解决这个问题,校验方式需要配置,校验方式有奇校验、偶校验、0校验和1校验

    • 奇校验要求有效数据和校验位中“1”的个数为奇数;
    • 偶校验则要求有效数据和校验位中“1”的个数为偶数;
    • 0校验位则是校验位始终为0,在收到报文后,检测校验位是否为0;
    • 1校验则是校验位始终为1,在收到报文后,检测校验位是否为1;

    0校验和1校验过于简陋,不建议使用,这里我选择不使用奇偶校验。在这里插入图片描述

    2.4、停止位

    停止位,停止位是一帧数据结束的标志,可以是1bit、1.5bit或者2bit逻辑“1” 高电平需要根据自己需求配置,每一个设备都有自己的时钟,在传输过程中可能出现了小小的不同步,停止位不仅仅表示传输的结束,并且提供了校正时钟同步的机会。这里我选择1bit停止位。在这里插入图片描述

    2.5、空闲位

    空闲位不算是串口报文内的数据, 它是发送完一组报文后,总线会自动将电平拉高,产生1bit 逻辑“1”空闲位

    四、波形

    1、具体连接

    调节示波器触发方式为上升沿触发后,将程序烧入开发板,连接板子Tx端(PA)与GND 进行测试。
    在这里插入图片描述
    在这里插入图片描述

    2、波形分析

    以下串口配置我选择了

    • 8bit 的数据位
    • 无奇偶校验位
    • 1bit 的停止位

    2.1 发送1报文

    在这里插入图片描述

    • 首先是1bit 的起始位,则报文为: 0;
    • 发送1, 8bit有效数据即为: 0000 0001 又因为是小端字节序( 英文:little endian)所以在报文中的实际存储为:1000 0000,则此时报文为: 0 1000 0000 ;
    • 没有使用奇偶校验,不使用奇偶校验位,此时报文没有变化为:0 1000 0000;
    • 使用1bit的停止位,则完整数据报文为: 0 1000 0000 1 ;
    • 发送完成后,自动产生1bit的空闲位,具体见下图:

    在这里插入图片描述

    2.2 发送65报文

    在这里插入图片描述

    • 首先是1bit 的起始位,则报文为: 0;
    • 发送65,8bit数据即为:0100 0001, 又因为是小端字节序,所以实际储存为:1000 0010, 则此时报文为: 0 1000 0010;
    • 没有使用奇偶校验,则不使用奇偶校验位,原报文不做变化,此时报文为:0 1000 0010;
    • 使用1bit的停止位,则完整的数据报文为:0 1000 0010 1
    • 发送完成后,自动产生1bit的空闲位,详情见下图:

    在这里插入图片描述

    五、总结

    通过抓取串口波形,对串口的报文格式有了进一步了解,串口报文格式为:

    起始位(1bit)+ 数据位(5~8bit)+ 奇偶校验位(1bit)+ 停止位(1~1.5bit)

    在发送完成一组报文后,会自动产生1 bit 的空闲位,以便进行下一组数据的传输。

    展开全文
  • 串口是一种非常通用的设备通信的协议(不要与 通用串行总线Universal Serial Bus(USB)混淆)。大多数计算机包含两个基于RS232的串口串口同时也是仪器仪表设备通用的 通信协议;很多GPIB兼容的设备也带有RS-232口。...
  • Android串口开发,基于谷歌官方的android-serialport-api增加支持设置奇偶校验、数据位和停止位 使用步骤 第一步:app/build.gradle进行依赖 implementation 'com.azhon:serialport:1.0.0' 第二步:打开串口 1....
  • 串口解析 串口配置 1.波特率 2.停止位 3.数据位 4.奇偶校验位 比特率:通讯的频率 停止位:可以选择1/1.5/2三个选择 数据位:可以选择5/6/7/8四个选择 奇偶校验位:可以选择奇校验/偶校验/无奇偶校验位 假设我们...
  • QT当中的串口通信你了解多少,平时接触的代码中的串口通信是不是让你手足无措,波特率、奇偶效验位、停止位、数据位怎么收发?射频识别的工作原理和代码编写,本章必须拿下
  • stm32串口中断通信,实现上位机控制开始发送和停止发送一、准备工作二、程序编写三、效果展示 一、准备工作 本文所使用的硬件设备为野火的指南者开发板,利用商家提供的例程完成串口的中断通信。 所要实现的功能为...
  • 串口串行接口(serialport)的简称,也称为串行通信接口或COM接口。串口通信是指采用串行通信协议(serialcommunicaTIon)在一条信号线上将数据一个比特一个比特地逐位进行传输的通信模式。串口按电气标准及协议来...
  • 如图,两位停止位可以起到时钟同步的作用。 因为在一个字节的时间内,收发端的时钟不会相差太大,但是当收发数据多了之后,它们的差距会越来越大,所以,每传输8位数据之后,使用停止位做一次时钟同步,那么收发端...
  • 在调试STM32程序,突然发现只要我在串口助手上打开串口,程序就停止运行了,本来在闪的灯也不闪了。 刚开始根本想不通串口打开跟板子的程序运行会有什么影响。。。 3.3V的电源灯一直是亮着的,手上也没有USB转串口...
  • 串口串行接口(serial port)的简称,也称为串行通信接口或COM接口。 串口通信是指采用串行通信协议(serial communication)在一条信号线上将数据一个比特一个比特地逐位进行传输的通信模式。 串口按电气标准及...
  • 串口调试工具,通过串口进行数据接收和发送,可切换ASCII和十六进制
  • 波特率,校验位,数据位,停止位是串口通讯的4个重要的参数。正确设置这几个参数是能正确通讯的前提~ 波特率:波特率是一个衡量传输速度的参数。通俗的讲,波特率就是每秒传多少位。 数据位:衡量通讯中实际数据位的...
  • stm32之串口使用和串口中断

    千次阅读 2021-03-21 00:55:50
    串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持该通讯方式,其通讯协议可分层为协议层和物理层。物理层规定通信协议中具有机械、电子功能的特性,...
  • 串口波形分析

    千次阅读 2022-04-15 17:02:49
    串口配置为115200波特率,8个数据位,1个停止位,无校验方式。 字符1的波形如下图: 从图中可以看到8个数据位,但是在第1位之前和第8位之后也是属于字符1的波形,第1位之前的是起始位,最后一位是停止位,即就是:...
  • 串口通信的停止

    千次阅读 2013-07-01 18:04:00
    串口通信 的波特率有关,通信所用波特率的倒数值即为1位,它在实际中表示为一个时间段。 由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此 ...
  • 串口通信是一种广泛使用且实用的通信方式,介绍RS232串行通信的联结方式,研究利用c语言编程实现RS232串行通信的过程。结合实际应用,在约定双方串行通信协议的基础上,运用C语言开发的串行通信软件,实现了企业生产...
  • 串行接口简称串口,也称串行通信接口(通常指COM接口),是采用串行通信方式的扩展接口。 串口通信的两种最基本的方式:同步串行通信方式和异步串行通信方式。 1.同步串行是指SPI(Serial Peripheral interface)的...
  • JAVA 串口编程 (一)

    2021-02-12 10:08:30
    延迟时间(毫秒数) (3)SerialPort 描述RS-232串行通信端口的底层接口,它定义了串口通信所需的最小功能集。可以直接对串口进行读、写及设置工作。 A:串口参数的函数 getBaudRate() 得到波特率 getParity() 得到检验...
  • 依据使用Cmake的方式 对串口开发的便捷了很多,但是的大多数例子,都不支持对 数据位 停止位 和校验位的设定,毕竟大多数人并不会linux 下的串口编程,查阅很多例子和资料主要参考了:...例子中的 C的写法 无校验(N-8-...
  • 谷歌官网提供的串口库的奇偶校验位数据位停止位都是默认的,如果有项目需要配置固定的参数的时候,很显然谷歌官网提供的是不可行的,但是是可参考的谷歌开源串口库,下面这边文章也仅仅是作为自己的一个踩过的坑的...
  • 串口设置为8,N,1模式 在发送数据时通过程序判断偶校验然后填到数据位的第8位,这样数据发送时就是7位数据位 1位偶校验 1位ting停止位。 在接收数据时去掉数据第8位, 程序连接:...
  • Linux串口转网络,linux下socat命令实现网络转发串口数据
  • 串口串行接口(serial port)的简称,也称为串行通信接口或COM接口。串口通信是指采用串行通信协议(serial communication)在一条信号线上将数据一个比特一个比特地逐位进行传输的通信模式。串口按电气标准及协议来...
  • Android串口助手 ComAssistant
  • 串行接口简称串口(Serial Interface),也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口是指数据一位一位地顺序传送。其特点是通信线路简单,只要一对传输线就可以实现...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 94,543
精华内容 37,817
关键字:

串口怎么停止