寫在前面 Ⅰ
我們都知道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這兩個引腳為硬件流控的功能。
-
STM32
+關注
關注
2309文章
11162瀏覽量
373471 -
USART
+關注
關注
1文章
202瀏覽量
33167 -
RTS
+關注
關注
0文章
23瀏覽量
14977 -
CTS
+關注
關注
0文章
35瀏覽量
15389
發布評論請先 登錄
LAT1171+STM32F745 USART1 Bootloader 失敗原因分析與解決
探索RTS系列環形端子溫度傳感器:設計與應用的理想之選
USART1、USART2、UART3的串口使用
RVMCU課堂「13」: 手把手教你玩轉RVSTAR—UART通信篇
STM32串口發送數據,USART_FLAG_TC無法置位怎么解決?
請問如何為CYW5591x串行啟用具有流控制的Uart?
CYW20719B2接收uart時意外重置了,怎么解決?
CYW20704 的 UART 4 針(TX/RX/CTS/RTS)是什么形式(推拉或漏極開路)嗎?
如何對CYBT-223058-02模塊(非 EVAL)進行編程?
AS32X601驅動系列教程 USART_串口通訊詳解
STM32的USART中RTS、 CTS的作用和意義
評論