系列索引:《嵌入式系統原理與應用》 | 嵌入式系統 重點知識梳理
目錄
數據通信的基本概念(串行與並行、單工、雙工、半雙工、同步與異步)
USART相關庫函數(初始化結構體變量的設置、發送與接收數據、中斷相關)
數據通信的基本概念(串行與並行、單工、雙工、半雙工、同步與異步)
UART(Universal Asynchronous Receiver/Transmitter,通用異步收發器)
UART的物理接口及互聯方式
UART接口
TxD用於發送數據;
RxD用於接收數據;
GND是地線:
互聯方式
UART的數據格式及傳輸速率(傳輸時間的計算)
UART數據格式
UART傳輸方式爲異步全雙工,數據線有兩根,一根發送,一根接收,以數據幀方式傳輸。
UART傳輸速率
根據約定的傳輸速率和所要傳輸的數據大小,可以得出通過UART發送完全部數據所需的時間。
例題:
假設STM32F03微控制器的USART1設置爲38.4kbps,7位數據位,1位偶校驗位,2位停止位,發送一個大小位1KB的文件,需要多少時間?
- 首先計算需要傳輸的幀數:
(1024*8)/7=1171次 //1kb = 1024*8二進制位 ,一幀7個數據位,則(1024*8)/7向上取整
1171*((1+7+1+2)/(1000*38.4))=0.335s // 1+7+1+2:7位數據位,1位偶校驗位,2位停止位,另加一個起始位
STM32 USART的特性*
STM32F103系列微控制器中的UART模塊被稱爲——USART
在具備UART異步全雙工串行通信傳輸基本功能的同時,還具有同步單向通信的功能。
USART使用DMA發送及接收數據的流程
USART可以利用DMA實現連續通信。Rx緩衝器和Tx緩衝器的DMA請求是分別產生的。
利用DMA發送
可以通過設置USART_CR3寄存器上的DMAT位激活。當TXE位被置爲’1’時,DMA就從指定的SRAM區傳送數據到USART_DR寄存器。爲USART的發送分配一個DMA
利用DMA接收
可以通過設置USART_CR3寄存器的DMAR位激活使用DMA進行接收,每次接收到一個字節,DMA控制器就就把數據從USART_DR寄存器傳送到指定的SRAM區。
USART相關庫函數(初始化結構體變量的設置、發送與接收數據、中斷相關)
USART_DeInit:將USARTx的寄存器恢復爲復位啓動時的默認值。
USART_Init:根據USART_InitStruct中指定的參數初始化指定USART的寄存器。
USART_Cmd:使能或禁止指定USART。
USART_SendData:通過USART發送單個數據。
USART_ReceiveData:返回指定USART最近接收到的數據。
USART_GetFlagStatus:查詢指定USART的標誌位狀態。
USART_ClearFlag:清除指定USART的標誌位。
USART_ITConfig:使能或禁止指定的USART中斷。
USART_GetITStatus:查詢指定的USART中斷是否發生。
USART_ClearITPendingBit:清除指定的USART中斷掛起位。