USART是STM32內部集成的硬件外設,可以根據數據寄存器的一個字節數據自動生成數據幀時序,從TX引腳發送出去,也可以自動接收RX引腳的數據幀時序,拼接成一個字節數據,存放在數據寄存器里。
當配置好USART的電路之后,直接讀取數據寄存器,就可以自動發送數據和接收數據了。在發送和接收的模塊有4個重要的寄存器
發送數據寄存器TDR
發送移位寄存器,把一個字節的數據一位一位的移出去
接收數據寄存器RDR
接收移位寄存器,把一個字節的數據
下方為串口的發送和接收圖解:
串口發送
在配置串口的各個參數時,可以選擇發送數據幀的數據位的大小,可選8位或9位。
串口發送數據實際上就是對發送數據寄存器TDR進行寫操作。
- 當串口發送數據時,會檢測發送移位寄存器是不是有數據正在移位,如果沒有移位,那么這個數據就會立刻轉移到發送移位寄存器里。準備發送。
2.當數據移動到移位寄存器時,會產生一個TXE發送寄存器空標志位,該位描述如下。當TXE被置1,那么就可以在TDR寫入下一個數據了。即發送下一個數據。
- 發送移位寄存器在發送器控制的控制下,向右移位,一位一位的把數據傳輸到TX引腳。
- 數據移位完成后,新的數據就會再次從TDR轉移到發送移位寄存器里來,依次重復1-3的過程。通過讀取TXE標志位來判斷是否發送下一個數據。
串口接收
數據從RX引腳通向接收移位寄存器,在接收控制的控制下,一位一位的讀取RX的電平,把第一位放在最高位,然后右移,移位八次之后就可以接收一個字節了。
當一個字節數據移位完成之后,這一個字節的數據就會整體的移到接收數據寄存器RDR里來。
在轉移時會置RXNE接收標志位,即RDR寄存器非空,下方為該位的描述。當被置1后,就說明數據可以被讀出。
下圖即為串口接收的工作流程
-
寄存器
+關注
關注
31文章
5363瀏覽量
121196 -
數據
+關注
關注
8文章
7145瀏覽量
89587 -
STM32
+關注
關注
2272文章
10924瀏覽量
357600 -
串口通信
+關注
關注
34文章
1627瀏覽量
55733
發布評論請先 登錄
相關推薦
STM32CUBEMX配置教程(八)STM32串口輪詢發送中斷接收+重定義+優化
![<b class='flag-5'>STM32</b>CUBEMX配置教程(八)<b class='flag-5'>STM32</b><b class='flag-5'>串口</b>輪詢<b class='flag-5'>發送</b>中斷<b class='flag-5'>接收</b>+重定義+優化](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32串口通訊
![<b class='flag-5'>STM32</b><b class='flag-5'>串口</b>通訊](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32踩坑:STM32串口發送亂碼問題
![<b class='flag-5'>STM32</b>踩坑:<b class='flag-5'>STM32</b><b class='flag-5'>串口</b><b class='flag-5'>發送</b>亂碼問題](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
stm32串口
![<b class='flag-5'>stm32</b><b class='flag-5'>串口</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32串口發送數據和接收數據方式總結(轉)
![<b class='flag-5'>STM32</b><b class='flag-5'>串口</b><b class='flag-5'>發送</b>數據和<b class='flag-5'>接收</b>數據方式總結(轉)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
21電賽02 stm32串口發送接收
![21電賽02 <b class='flag-5'>stm32</b><b class='flag-5'>串口</b><b class='flag-5'>發送</b><b class='flag-5'>接收</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
(二)STM32串口總結(庫函數版)
![(二)<b class='flag-5'>STM32</b><b class='flag-5'>串口</b>總結(庫函數版)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論