STM32的串口中断详解
生活随笔
收集整理的這篇文章主要介紹了
STM32的串口中断详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
中斷配置
中斷服務函數
1. 中斷服務函數名稱查找
2. 中斷服務函數?
?3. 可以選擇的串口中斷類型?
extern u8 USART_RX_BUF[USART_REC_LEN]
extern u16 USART_RX_STA
中斷配置
使能接收中斷
中斷服務函數
1. 中斷服務函數名稱查找
2. 中斷服務函數?
3. 可以選擇的串口中斷類型?
此處定義
其他文件中的聲明
extern u8 USART_RX_BUF[USART_REC_LEN]
最大接收字節數
extern u16 USART_RX_STA
接收狀態標記
| extern u16 USART_RX_STA | ||
| bit15 | bit14 | bit13~0 |
| 接收完成標志 | 接收到0x0D標志 | 接收到的有效數據個數 |
0x0D是回車的ASCII碼
0x0A是換行的ASCII碼
若電腦發送了一串數據,則我們需要在電腦發送這串數據的最后加上0x0D
STM32分析接收到的數據,如果讀到0x0D,則將bit14置1
STM32分析接收到的數據,如果讀到0x0A,則將bit15置1
這里的0x0D和0x0A不會給bit13~0加1
外部函數只需要訪問USART_RX_STA的bit15即可
若USART_RX_STA的bit15為1,則已經完成了一次接收了,而且我們知道,數據的長度是bit13~0
因此,我們只需要按照bit13~0到USART_RX_BUF中去讀取即可
讀取完成后,我們再把USART_RX_STA全部清0,以便下一次繼續接收
使用電腦發送數據時,記得勾選發送新行,這樣就會以0x0D和0x0A結尾
總結
以上是生活随笔為你收集整理的STM32的串口中断详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CSS选择器随笔
- 下一篇: ZOJ 3380 Patchouli's