1.串口簡介
通用同步異步收發器(USART)提供了一種靈活的方法與使用工業標準NRZ異步串行數據格式的外部設備之間進行全雙工數據交換。 USART利用分數波特率發生器提供寬范圍的波特率選擇。它支持同步單向通信和半雙工單線通信,也支持LIN(局部互連網),智能卡協議和IrDA(紅外數據組織)SIR ENDEC規范,以及調制解調器(CTS/RTS)操作。它還允許多處理器通信。使用多緩沖器配置的DMA方式,可以實現高速數據通信。
任何USART雙向通信至少需要兩個腳:接收數據輸入(RX)和發送數據輸出(TX)。
RX:接收數據串行輸。通過過采樣技術來區別數據和噪音,從而恢復數據。
TX:發送數據輸出。當發送器被禁止時,輸出引腳恢復到它的I/O端口配置。當發送器被激活,并且不發送數據時, TX引腳處于高電平。在單線和智能卡模式里,此I/O口被同時用于數據的發送和接收。
串口特性:
● 全雙工的,異步通信
● NRZ標準格式
● 分數波特率發生器系統
─ 發送和接收共用的可編程波特率,最高達4.5Mbits/s
● 可編程數據字長度(8位或9位)
● 可配置的停止位-支持1 或2個停止位
2.硬件接口
在本開發板中,提供串口接口有兩個,一個是普通串口USART1,一個是低功耗串口LPUART1。LPUART1可以通過32.768 kHz驅動,波特率可達9600bps,我們這以普通串口為例。
根據原理圖,USART1_TX和PC4相連,USART1_RX和PC5相連。
![poYBAGKVYYCAQzo8AANxhmKe1j8171.png#pic_center](https://file.elecfans.com//web2/M00/46/A6/poYBAGKVYYCAQzo8AANxhmKe1j8171.png#pic_center)
3.串口配置
![pYYBAGKVXZGAX15ZAAMcKYwnVUU522.png](https://file.elecfans.com/web2/M00/46/A6/pYYBAGKVXZGAX15ZAAMcKYwnVUU522.png)
![poYBAGKVXaGASG6YAACP6tLi_cM084.png](https://file.elecfans.com/web2/M00/46/A6/poYBAGKVXaGASG6YAACP6tLi_cM084.png)
![pYYBAGKVXbSAUq43AAJ2tliqR_k735.png](https://file.elecfans.com/web2/M00/46/A6/pYYBAGKVXbSAUq43AAJ2tliqR_k735.png)
3.代碼生成
![poYBAGKVXeKAegB0AAQOlg8c6V0532.png](https://file.elecfans.com/web2/M00/46/A6/poYBAGKVXeKAegB0AAQOlg8c6V0532.png)
3.1 printf重定向實現
int fputc(int c, FILE *stream)
{
huart1.Instance->TDR=c;
while( !(huart1.Instance->ISR&1<<7)){}
return c;
}
3.2 串口中斷
STM32G431芯片有讀數據寄存器RDR和發送數據寄存器TDR。
讀數據寄存器RDR:
![pYYBAGKVXtCAa9FBAAGOiBoiyao782.png](https://file.elecfans.com/web2/M00/46/A6/pYYBAGKVXtCAa9FBAAGOiBoiyao782.png)
發送數據寄存器TDR:
![pYYBAGKVXyyAL1GWAAIU_JISlzM202.png](https://file.elecfans.com/web2/M00/46/A6/pYYBAGKVXyyAL1GWAAIU_JISlzM202.png)
void USART1_IRQHandler(void)
{
/* USER CODE BEGIN USART1_IRQn 0 */
uint8_t c;
/* USER CODE END USART1_IRQn 0 */
HAL_UART_IRQHandler(&huart1);
/* USER CODE BEGIN USART1_IRQn 1 */
c=huart1.Instance->RDR;//接收數據
huart1.Instance->TDR=c;
/* USER CODE END USART1_IRQn 1 */
}
3.3 主函數
![poYBAGKVXjmAdeizAAM7HOXuLOM595.png](https://file.elecfans.com/web2/M00/46/A6/poYBAGKVXjmAdeizAAM7HOXuLOM595.png)
![pYYBAGKVXluANNCkAAyV5pe_BCI582.png](https://file.elecfans.com/web2/M00/46/A6/pYYBAGKVXluANNCkAAyV5pe_BCI582.png)
![pYYBAGKVXm-AC4tkAAGqfA9dW3I200.png](https://file.elecfans.com/web2/M00/46/A6/pYYBAGKVXm-AC4tkAAGqfA9dW3I200.png)
-
STM32
+關注
關注
2270文章
10900瀏覽量
355985 -
串口
+關注
關注
14文章
1554瀏覽量
76512 -
USART
+關注
關注
1文章
195瀏覽量
30853 -
HAL
+關注
關注
2文章
70瀏覽量
12614
發布評論請先 登錄
相關推薦
評論