串口的三種工作模式


串口一般有兩種方式:查詢中斷;STM32還支持第三種DMA方式

1、查詢:

  串口程序不斷地循環查詢標志,看看當前有沒有數據要它傳送或接收。如果有的話進行相應的寫操作和讀操作進行傳送或接收數據。

      特點:

  • 查詢方式的效率是比較低的,並且由於STM32的UART硬件上沒有FIFO,如果程序功能比較多,查詢不及時的話很容易出現數據丟失的現象, 故實際項目中這種方式用的並不多。

2、中斷

  平時串口只要打開中斷即可。如果發現有一個中斷來,則意味着有數據需要接收(接收中斷)或數據已經發送完成(發送中斷)。

  特點:

  • 中斷方式的話我們可以分別設置接收中斷和發送中斷,當串口有數據需要接收時才進入中斷程序進行讀讀操,這種方式占用CPU資源比較少,實際項目中比較常用,但需要注意中斷程序不要太復雜使執行時間太長,如果執行時間超過一個字符的時間的話也會出現數據丟失的現象,這個波特率比較高的串口編程中比較容易出現,可以考慮用循環BUF方法,在中斷程序中只負責實時地接收實數數和發送時的填數(寫發送寄存器),其它操作放在中斷外處理。

3、DMA方式

  設置好DMA工作方式,由DMA來自動接收或發送數據。

  特點:

  • STM32還提供了第三種DMA方式用來支持高速地串口傳輸。這種方式只要設置好接收和發送緩沖位置,可以由DMA來自動接收和發送數據,這可以最小化占用CPU時間。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM