STM32USART串列埠庫函式介紹之USART_Init
本文將介紹USART串列埠的庫函式,總的來說有以下函式體:
※ USART_Init函式:初始化所使用的串列埠外設
※ USART_Cmd函式:使能或者失能USART外設
※ USART_ITConfig函式:使能或者失能指定的USART中斷
※ USART_SendData函式:通過外設USARTx傳送單個數據
※ USART_ReceiveData函式:返回USARTx最近解釋接收到的資料
※ USART_GetFlagStatus函式:檢查指定的USART標誌位設定與否
※ USART_ClearFlag函式:清楚USARTx的待處理標誌位
※ USART_GetITStatus函式:檢查指定的USART中斷髮生與否
接下來分開闡述以上幾種函式以及其用法和相關注意事項
1.USART_Init函式
USART_Init函式的功能是初始化非同步串列埠,包括選定使用的串列埠,設定串列埠的資料傳輸速率、資料位數、檢驗方式、停止位、流量控制方式等,是串列埠最重要的庫函式。
USART_InitTypeDef定義於檔案<stm32f10x_usart.h> 中,具體如下:
typedef struct
{
u32 USART_BaudRate;
u16 USART_WordLength;
u16 USART_StopBits;
u16 USART_Parity;
u16 USART_HardwareFlowControl;
u16 USART_Mode;
} USART_InitTypeDef;
USART_WordLength提示了在一個幀中傳輸或者接收到的資料位數;
USART_WordLength_8b;8位資料
USART_WordLength_9b;9位資料
USART_StopBits定義了傳送的停止位數目;
USART_StopBits_1 在幀結尾傳輸1個停止位
USART_StopBits_0.5 在幀結尾傳輸0.5個停止位
USART_StopBits_2 在幀結尾傳輸2個停止位
USART_StopBits_1.5 在幀結尾傳輸1.5個停止位
USART_Parity定義了奇偶模式
USART_Parity_No 奇偶失能
USART_Parity_Even 偶模式
USART_Parity_Odd 奇模式
USART_HardwareFlowControl指定了硬體流控制模式使能還是失能
USART_HardwareFlowControl_None 硬體流控制失能
USART_HardwareFlowControl_RTS 傳送請求RTS使能
USART_HardwareFlowControl_CTS 清除傳送CTS使能
USART_HardwareFlowControl_RTS_CTS RTS和CTS使能
USART_Mode指定了使能或者失能傳送和接收模式
USART_Mode_Tx 傳送使能
USART_Mode_Rx 接收使能
例項:初始化非同步串列埠1,速率為19200,8為資料,1個停止位,無檢驗,無流量控制,接收發送使能。
USART_InitTypeDef USART_InitStructure;
USART_InitStructure.USART_BaudRate = 19200;
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_RTS_CTS;
USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;
USART_Init(USART1, &USART_InitStructure);