STM32的USART中RTS、CTS的作用和意义

发布者:喜从中来最新更新时间:2019-04-12 来源: eefocus关键字:STM32  USART  RTS  CTS 手机看文章 扫描二维码
随时随地手机看文章

Ⅰ、写在前面

我们都知道USART中RX和TX这两个引脚的功能,这两个引脚是USART串行通信最常见和必不可少的两个引脚。但我们在手册中会发现关于USART的其他引脚:USART_CK、USART_RTS、USART_CTS,如下图:



但我们大部分都没怎么使用过USART_RTS和USART_CTS这两个引脚。下面将给大家简单讲述一下关于USART串口拓展的知识。


Ⅱ、关于DB9串口接头

我们都听说过RS232,说232就知道DB9这个串口接头。


DB9个引脚的功能:



1 CD ← Carrier Detect 载波检测


2 RXD ← Receive Data 接收数据


3 TXD → Transmit Data 发送数据


4 DTR → Data Terminal Ready数据终端就绪


5 GND — System Ground 系统接地


6 DSR ← Data Set Ready 数据设备就绪


7 RTS → Request To Send 请求发送


8 CTS ← Clear To Send 允许发送


9 RI → 这个好像是什么提示信号


相信大家都知道DB9这个标准的串口接头,但我们大部分就只用RX、TX和GND这三个引脚,其他引脚都不关心,或者都不知道是什么意思,相信看了引脚定义之后,大概有所理解。


Ⅲ、RTS CTS

在ARM处理器中的USART中,基本上都具有硬件流控的功能,也就是说一般都有RTS CTS引脚(注意:功能简单一点的处理器,如51、STM8等,很少有串口硬件流控功能)。


RTS:是模块的输入端,用于MCU通知模块,MCU是否准备好,模块是否可向MCU发送信息,RTS的有效电平为低。


CTS:是模块的输出端,用于模块通知MCU,模块是否准备好,MCU是否可向模块发送信息,CTS的有效电平为低


RTS (Require ToSend,发送请求)为输出信号,用于指示本设备准备好可接收数据,低电平有效,低电平说明本设备可以接收数据。


CTS (Clear ToSend,发送允许)为输入信号,用于判断是否可以向对方发送数据,低电平有效,低电平说明本设备可以向对方发送数据。


Ⅳ、STM32中硬件流控配置


我们配置串口时,有如下一段配置代码:


USART_InitTypeDef USART_InitStructure;


USART_InitStructure.USART_BaudRate = 115200;


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(USART1, &USART_InitStructure);


上面配置代码中有一个参数:


USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;


其实这个参数可以为:


#define USART_HardwareFlowControl_None       ((uint16_t)0x0000)


#define USART_HardwareFlowControl_RTS        ((uint16_t)0x0100)


#define USART_HardwareFlowControl_CTS        ((uint16_t)0x0200)


#define USART_HardwareFlowControl_RTS_CTS    ((uint16_t)0x0300)


也就是可以配置使用RTS和CTS这两个引脚为硬件流控的功能。


关键字:STM32  USART  RTS  CTS 引用地址:STM32的USART中RTS、CTS的作用和意义

上一篇:STM32F103 UART 串口
下一篇:STM32F4 USART1 TX RX FIFO

推荐阅读最新更新时间:2024-03-16 16:27

STM32的UART的GPIO管脚配置的异常问题
参照STM32的数据手册,其GPIO管脚具有8种输入输出形式: 1. 浮空输入 2. 带上拉输入 3. 带下拉输入 4. 模仿输入 5. 开漏输出 6. 推挽输出 7. 复用功用的推挽输出 8. 复用功用的开漏输出 根据具体状况进行灵敏装备。 我在运用UART的时分就呈现过装备过错的状况,我把RX管脚装备成input floating,外部没有接上拉电阻,后边接了485电平变换芯片SN65HDV10,成果本应该只接纳1个字节,但一直接纳到0x00,原因是485芯片设置成发送状况后其接纳管脚为高阻态,而STM32芯片为悬空态,实践测验该管脚为低电平,所以一直接纳到0x00,将STM32的UART接纳管脚装备为i
[单片机]
STM32 SPI通信时钟极性和相位设置
通过 SPI_CR1 寄存器中的 CPOL 和 CPHA 位,可以用软件选择四种可能的时序关系。 CPOL(时钟极性)位控制不传任何数据时的时钟电平状态。此位对主器件和从 器件都有作 用。如果复位 CPOL,SCK 引脚在空闲状态处于低电平。如果将 CPOL 置 1,SCK 引脚在 空闲状态处于高电平。 如果将 CPHA(时钟相位)位置 1,则 SCK 引脚上的第二个边沿(如果复位 CPOL 位,则 为下降沿;如果将 CPOL 位置 1,则为上升沿)对 MSBit 采样。即,在第二个时钟边沿锁存 数据。如果复位 CPHA 位,则 SCK 引脚上的第一个边沿(如果将 CPOL 位置 1,则为下降 沿;如果复位 CPOL 位,则为
[单片机]
stm32学习笔记(一) GPIO
战舰开发板的程序 main函数 int main(void) { delay_init(); //延时函数初始化 LED_Init(); //初始化与led连接的硬件配置 while(1) { LED0=1; LED1=1; delay_ms(300); LED0=0; LED1=0; delay_ms(300); } } delay_init();函数 void delay_init() { #ifdef OS_CRITICAL_METHOD //如果OS_CRITICAL_METHOD定义了,说明使用ucosII了. u32 reload; #e
[单片机]
STM32单片机的FSMC对TFT的驱动
一、FSMC之我见 开始只是谈到别人对FSMC的理解,注意这里只讨论FSMC控制TFT,也就是在FSMC的NORPSRAM模式控制LCD,所以我们以下的分析都是基于这种模式的。 1、我们之前通过使用GPIO来模拟8080/6800时序从而达到驱动彩屏的,同样需要明白的一点就是我们也只是使用FSMC来模拟8080/6800时序,只不过这个读写速度有些快(使用了总线嘛),仅此而已! 简单一点就是:8080是通过“读使能(RE)”和“写使能(WE)”两条控制线进行读写操作。 6800是通过“总使能(E)”和“读写选择(W/R)”两条控制线进行 2、那么了解到FSMC的三总线如下! 数据线:这个可以分为8位的和16位,这个不难
[单片机]
<font color='red'>STM32</font>单片机的FSMC对TFT的驱动
STM32笔记之九:打断它来为我办事,EXIT (外部I/O中断)应用
a) 目的:跟串口输入类似,不使用中断进行的IO输入效率也很低,而且可以通过EXTI插入按钮事件,本节联系EXTI中断。 b) 初始化函数定义: void EXTI_Configuration(void); //定义IO中断初始化函数 c) 初始化函数调用: EXTI_Configuration();//IO中断初始化函数调用简单应用: d) 初始化函数: void EXTI_Configuration(void) { EXTI_InitTypeDef EXTI_InitStructure; //EXTI初始化结构定义 EXTI_Cle
[单片机]
STM32的PWM的频率和占空比设定
在TEC控温项目中用到PWM的占空比来控制温度,这就需要占空比是连续可以变化的。 最开始也是到处找资料,找现成的例程,发现大家各说风云,最后还是没有建设性的结果。所以又请教了官方的固件库“STM32最新固件库v3.5”(存到百度网盘- 开发应用- stm32目录下了)呵呵,有现成的demo。开始好像是懂了也没有过多的去研究,也没有备份,就没去管他了。后来具体用的时候发现没有想象的那么简单,又倒腾了好久才搞清楚,问了不走弯路。这次决定用博客来记录一下现在的成果。配置文件如下: void TIME_ini(uint16_t Channel4Pulseset) { TIM_TimeBaseInitTypeDef TIM_Time
[单片机]
stm32普通IO口模拟iic时序
1,用stm32的普通IO口模拟iic时序,可以用较少的IO口实现iic功能,在实际使用中有很大优势。 2,stm32的IO可以设置为推挽,开漏输出模式,在开漏输出下,如果带上拉电阻,则可以双向传输数据, 如输出1(PCout()=1),从它的输入引脚可以读出状态(PCin()), 这样在不需要配置输入,输出模式,就可以实现iic数据线的写和读。 程序实现过程: #define AT_IIC_SCL PCout(12) #define AT_IIC_SDA PCout(11) #define AT_IIC_SDA_READ PCin(11) void I2cIoInit() { GPIO_InitT
[单片机]
意法半导体市场领先的 STM32 微控制器加快无线产品开发
意法半导体市场领先的 STM32 微控制器加快无线产品开发 扩展后的STM32Cube 生态系统可支持 STM32WB 无线 MCU 新的 STM32CubeWB 固件,升级的编程器和射频测试工具 改进的无线功耗估算器准确计算电池续航时间 中国,2021 年 9 月24 日 -- 服务多重电子应用领域的全球半导体领导者意法半导体(STMicroelectronics,简称ST;) 发布了新的STM32WB无线微控制器(MCU)开发工具和软件,为智能建筑、智能工业和智能基础设施的开发者降低设计经济、节能的无线设备的难度。 意法半导体的高集成度 STM32WB 单片集成一个 2.4GHz射频收发器和Arm®
[单片机]
意法半导体市场领先的 <font color='red'>STM32</font> 微控制器加快无线产品开发
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved