大家好,欢迎来到IT知识分享网。
一、串口概述
帧格式
硬件流控
如果使能了硬件流控,在三线串口通信模式增加两根控制线,一根叫 CTS(Clear To Send 为输入信号,一根叫 RTS(Require To Send 为输出信号)。一个是接收控制,一个是发送控制。
从硬件连接原理图中我们可以看到,如果从 USART 1 向 USART 2 发送的话,USART 1 的 TX 和 USART 2 的 RX 相连,USART 1 的 CTS 和 USART 2 的 RTS 相连,数据的方向是从 TX 到 RX,从串口1到串口2,流控是从 RTS 到 CTS 也就是从串口2到串口1。
RTS(Require To Send,发送请求)为输出信号,用于指示本设备准备好可接收数据,低电平有效,低电平说明本设备可以接收数据。
CTS(Clear To Send,发送允许)为输入信号,用于判断是否可以向对方发送数据,低电平有效,低电平说明本设备可以向对方发送数据。
4.2 软件流控
由于电缆线的限制,我们在普通的控制通讯中一般不用硬件流控制,而用软件流控制。一般通过xon/xoff来实现软件流控制。常用方法是:当接收端的输入缓冲区内数据量超过设定的高位时,就向数据发送端发出xoff字符(十进制的19或十六进制的0x13或control-s,设备编程说明书应该有详细阐述),发送端收到 xoff字符后就立即停止发送数据;当接收端的输入缓冲区内数据量低于设定的低位时,就向数据发送端发出xon字符(十进制的17或十六进制的0x11或control-q),发送端收到xon字符后就立即开始发送数据。一般可以从设备配套源程序中找到发送的是什么字符。
应该注意,若传输的是二进制数据,标志字符也有可能在数据流中出现而引起误操作,这是软件流控制的缺陷,而硬件流控制不会有这个问题。
RS-232详解
接口定义
下图是公头9针RS232接口详细定义:
电平及时序
RS232采用负逻辑电平,定义如下:
RS-485详解
二、信号电平
根据RS-485标准,当485总线差分电压大于+200mV时,485收发器输出高电平;当485总线差分电压小于-200mV时,485收发器输出低电平;当485总线上的电压在-200mV~+200mV时,485收发器可能输出高电平也可能输出低电平,但一般总处于一种电平状态,若485收发器的输出低电平,这对于UART通信来说是一个起始位,此时通信会不正常。
在开发使用到的芯片为SP3485,引脚详细描述如下:
该芯片真值表如下:
三、调试工具
3.2 引脚说明
五、参考代码
RS485_TX_EN=1; //设置为发送模式 delay_ms(1); for(i=0; i<len; i++) //循环发送数据 { USART_SendData(USART2,pbuf[i]); //发送数据 while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==RESET); } delay_ms(1); RS485_TX_EN=0; //设置为接收模式 delay_ms(1);
}
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) //接收到数据 { d =USART_ReceiveData(USART2); USART1_WriteBytes(&d,1); USART_ClearITPendingBit(USART2, USART_IT_RXNE); }
}
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/120267.html













