STM32的USART中RTS、 CTS的作用和意义 | 您所在的位置:网站首页 › uint16_t什么意思 › STM32的USART中RTS、 CTS的作用和意义 |
STM32的USART中RTS、 CTS的作用和意义
2020-03-20
4985
分享海报
![]() 黄工的嵌入式技术圈 描述
写在前面 Ⅰ 我们都知道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; 其实这个参数可以为: #defineUSART_HardwareFlowControl_None ((uint16_t)0x0000) #defineUSART_HardwareFlowControl_RTS ((uint16_t)0x0100) #defineUSART_HardwareFlowControl_CTS ((uint16_t)0x0200) #defineUSART_HardwareFlowControl_RTS_CTS ((uint16_t)0x0300) 也就是可以配置使用RTS和CTS这两个引脚为硬件流控的功能。 打开APP阅读更多精彩内容 |
CopyRight 2018-2019 实验室设备网 版权所有 |