232串口线怎么接(分析232串口线接线图和注意项

废话少说。跟我一起读这篇文章吧。这是一篇长文。建议大家喜欢收藏,以后可以看!我能再麻烦你一件事吗?能不能一次看一个!让这篇好文章分享出来,让更多人看到!什么是串口通信?串行通信是指仅通过一条接收线和一条发送线就可以按位传输数据的一种通信方式。虽然串行通信比...

废话少说。跟我一起读这篇文章吧。这是一篇长文。建议大家喜欢收藏,以后可以看!我能再麻烦你一件事吗?能不能一次看一个!让这篇好文章分享出来,让更多人看到!

什么是串口通信?

串行通信是指仅通过一条接收线和一条发送线就可以按位传输数据的一种通信方式。虽然串行通信比逐字节并行通信慢,但串行通信只需用两根线就能实现数据传输。

典型的串行通信是通过使用三根线来完成的,即地线、发送线和接收线。因为串行通信是异步的,端口可以在一条线路上发送数据,在另一条线路上接收数据。串行通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于需要串口通信的两个端口,这些参数必须匹配,这也是串口通信的前提。

图1:串行通信显示数据传输意图。

二、串行通信协议?

起初,数据是一个简单的模拟信号输出的过程量,然后RS232接口出现在仪器接口。这种接口可以实现点对点通信,但这种方式无法实现联网功能,这就导致了RS485。

我们知道串行通信的数据传输都是0和1。在单总线、I2C和UART中,逻辑1或逻辑0是由一条线的高低电平来判断的。然而,该信号线的GND形成了与其它设备的共地模式通信。这种共模传输容易受到干扰,抗干扰性能较弱。因此,具有差分通信、多机通信、抗干扰能力强等优点的RS485得到了广泛的应用。

RS485通信的最大特点是传输速度可达10Mb/s以上,传输距离可达3000m左右。需要注意的是,虽然485的最大速度和最大传输距离都很大,但是传输速度会随着距离的增加而变慢,所以我们不能两者兼得。

第三,串行通信的物理层

串行通信的物理层有许多标准。比如上面说的,我们主要解释RS-232标准,它主要规定了信号的用途、通信接口和信号电平标准。

在上述通信模式中”两个通信设备的DB9接口”连接是通过串行信号线建立的,它使用”RS-232标准”传输数据信号。由于RS-232电平标准的信号不能被控制器直接识别,这些信号将通过一个”电平转换芯片”进入控制器可以识别”TTL校准”电平信号,实现通信。

下图显示了DB9标准串行通信接口:

DB9引脚描述:

上表显示了计算机侧DB9公接头的标准连接方法。因为两个通信设备之间的收发信号(RXD和TXD)应该是交叉连接的,所以调制解调器侧的DB9母连接器的收发信号连接方法通常与公连接器相反。当连接两个设备时,仅使用”直通式”连接串行端口线。

对于串行线中的RTS、CTS、DSR、DTR和DCD信号,逻辑1表示信号有效,逻辑0表示信号无效。例如,当计算机端控制DTR信号线表示为逻辑1时,用于通知远程调制解调器本地计算机准备好接收数据,0表示还没有准备好。

四。波特率

波特率是指数据信号对载波的调制速率,用单位时间内载波调制状态变化的次数来表示;

比如波特率是9600bps;它代表每秒9600bit的传输,相当于把每秒分成9600等份。

因此,每1位时间是1/9600秒= 104.1666 …我们.大约0.1毫秒。由于它是9600等份,即每1位后面跟着下一位,因此没有额外的间隔。如果两台设备要实现串行通信,收发机设置的波特率必须相同,否则没有办法实现通信。

通信可以通过一致的波特率来实现:

发送和接收波特率不一致,导致RX端无***常接收。

5.串行通信的数据结构

起始位:起始位必须是持续一位的逻辑0电平,标志着字符传输的开始。接收方可以使用起始位来使其接收时钟与发送方的数据同步。

数据位:数据位是紧随起始位之后的通信中真正有效的信息。数据位的数量可以由双方商定。传输数据时,先传输字符的低位,再传输字符的高位。

奇偶校验位:奇偶校验位只占一位,用于奇偶校验。奇偶校验位不是必需的。如果是奇数奇偶校验,需要保证传输的数据总共有奇数个逻辑高位;如果是偶数校验,需要保证传输的数据总共有偶数个逻辑高位。

停止位:停止位可以是1位、1.5位或2位,可以通过软件设置。它必须是逻辑1电平,标志着传输一个字符的结束。

空空闲位:空空闲位是指一个字符的停止位的结束和下一个字符的开始,表示该行处于空空闲状态,必须用高电平填充。

不及物动词单双工通信

单工:数据传输只支持一个方向的数据传输;

半双工:允许数据双向传输,但在某个时刻只能单向传输。实际是切换方向的单工通信,不需要独立的接收机和发射机,可以合并成一个端口;

全双工:允许数据同时双向传输,所以全双工通信是两种单工模式的结合,需要独立的接收机和发射机。

七、STM32中的串行通信

STM32的串行通信接口有两种,分别是UART(通用异步收发器)和USART(通用同步异步收发器)。对于大容量的STM32F10x系列芯片,分别有三个USART和两个UART。

TXD:数据发送引脚;RXD:数据输入引脚

对于两个芯片之间的连接,两个芯片共同接地,TXD和RXD交叉连接,这样两个芯片之间就可以进行TTL级别的通信。

但是,如果芯片连接到PC,除了公共接地条件外,上述直接交叉连接无法使用。虽然两者都有TXD和RXD引脚,但PC通常使用RS232接口(9引脚),通常由TXC和RXD的电平转换得到。因此,如果芯片要与PC的RS232接口直接通信,芯片的输入和输出端口需要电平转换为RS232类型,然后交叉连接。两者的等级标准不同:

单片评估标准(TTL级):+5V代表1,0V代表0;

RS232电平标准:+15/+13V表示0,-15/-13表示1。

因此,单片机与PC机的串行通信应遵循:在单片机的串口与上位机给定的RS232口之间,通过电平转换电路实现TTL电平与RS232电平的转换。

如果使用USB转串口也可以实现串行通信,那么USB转串口的电路图如下

STM32串行通信代码

STM32中的串口通信为大家建立了相应的库函数。使用和配置串口时,只需调用库函数,直接配置即可。请参考代码:

1。初始化结构代码

typedef?struct?{?uint32_t?USART_BaudRate;?//?波特率?uint16_t?USART_WordLength;?//?字长?uint16_t?USART_StopBits;?//?停止位?uint16_t?USART_Parity;?//?校验位?uint16_t?USART_Mode;?//?USART?模式?uint16_t?USART_HardwareFlowControl;?//?硬件流控制?}?USART_InitTypeDef;

2。NVIC配置中断优先级

NVIC_Configuration(void){??NVIC_InitTypeDef?NVIC_InitStructure;????/*?嵌套向量中断控制器组选择?*/??NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);????/*?配置USART为中断源?*/??NVIC_InitStructure.NVIC_IRQChannel?=?DEBUG_USART_IRQ;??/*?抢断优先级*/??NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority?=?1;??/*?子优先级?*/??NVIC_InitStructure.NVIC_IRQChannelSubPriority?=?1;??/*?使能中断?*/??NVIC_InitStructure.NVIC_IRQChannelCmd?=?ENABLE;??/*?初始化配置NVIC?*/??NVIC_Init(&NVIC_InitStructure);}

3。USART配置功能

void?DEBUG_USART_Config(void){?GPIO_InitTypeDef?GPIO_InitStructure;?USART_InitTypeDef?USART_InitStructure;??/*?第一步:初始化GPIO */??//?打开串口GPIO的时钟?DEBUG_USART_GPIO_APBxClkCmd(DEBUG_USART_GPIO_CLK,?ENABLE);??//?将USART?Tx的GPIO配置为推挽复用模式?GPIO_InitStructure.GPIO_Pin?=?DEBUG_USART_TX_GPIO_PIN;?GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_AF_PP;?GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;?GPIO_Init(DEBUG_USART_TX_GPIO_PORT,?&GPIO_InitStructure);??//?将USART?Rx的GPIO配置为浮空输入模式?GPIO_InitStructure.GPIO_Pin?=?DEBUG_USART_RX_GPIO_PIN;?GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_IN_FLOATING;?GPIO_Init(DEBUG_USART_RX_GPIO_PORT,?&GPIO_InitStructure);???/*?第二步:配置串口的初始化结构体?*/??//?打开串口外设的时钟?DEBUG_USART_APBxClkCmd(DEBUG_USART_CLK,?ENABLE);?//?配置串口的工作参数?//?配置波特率?USART_InitStructure.USART_BaudRate?=?DEBUG_USART_BAUDRATE;?//?配置?针数据字长?USART_InitStructure.USART_WordLength?=?USART_WordLength_8b;?//?配置停止位?USART_InitStructure.USART_StopBits?=?USART_StopBits_1;?//?配置校验位?USART_InitStructure.USART_Parity?=?USART_Parity_No?;?//?配置硬件流控制?USART_InitStructure.USART_HardwareFlowControl?=?USART_HardwareFlowControl_None;?//?配置工作模式,收发一起?USART_InitStructure.USART_Mode?=?USART_Mode_Rx?|?USART_Mode_Tx;?//?完成串口的初始化配置?USART_Init(DEBUG_USARTx,?&USART_InitStructure);/*--------------------------------------------------------*/?//?串口中断优先级配置?NVIC_Configuration();??//?使能串口接收中断?USART_ITConfig(DEBUG_USARTx,?USART_IT_RXNE,?ENABLE);/*--------------------------------------------------------*/??/*?第三步:使能串口?*/???//?使能串口?USART_Cmd(DEBUG_USARTx,?ENABLE);?}

本文来自少年我念你投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/530236.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 05-02
下一篇 05-02

相关推荐

  • 232串口线怎么接(分析232串口线接线图和注意项

    废话少说。跟我一起读这篇文章吧。这是一篇长文。建议大家喜欢收藏,以后可以看!我能再麻烦你一件事吗?能不能一次看一个!让这篇好文章分享出来,让更多人看到!什么是串口通信?串行通信是指仅通过一条接收线和一条发送线就可以按位传输数据的一种通信方式。虽然串行通信比

    2023-05-02 22:19:01
    1017 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信