iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 27
1
IoT

熟悉Arduino的Maker必看!30天帶你快速入門基於STM32嵌入式開發~系列 第 27

[Day 27]-【STM32系列】UART/USART RX 資料接收篇(下)

昨日[Day 26]-【STM32系列】UART/USART TX 資料傳送篇(上)我們體驗了UART/USART 關於用三種方法傳送資料,今天要帶大家體驗接收數據的方法,一樣我會使用這三種方法,並展現這三種方法的區別,方法如下:

  • 使用輪詢-> HAL_UART_Receive
  • 使用中斷—> HAL_UART_Receive_IT
  • 使用DMA-> HAL_UART_Receive_DMA

再次複習三種

  1. 輪詢(Polling):就是阻塞式詢問,CPU都不幹別的事了,就整天在那邊問你說:「現在有沒有要傳資料啊?」沒有要傳我就繼續等,總是在那邊詢問、等待。這種方最土法煉鋼、這就是輪詢的缺點,效率太低,占用cpu時間。

  2. 中斷(Interrupt):沒有收到數據時,執行其他的程序,收到數據後,進入中斷處理通訊。與輪詢相對來說,不用循環查詢狀態暫存器,可以有更多的時間運行其他程序。

  3. DMA(Direct Memory Access):直接記憶體存取。串列數據的接收與發送由DMA處理,DMA說:「我把接收、傳送的資料放在記憶體的某個位置,你如果需要就自己去那個位置提取」。DMA也可以分為輪詢與中斷方式。資料的發送與接收都不用CPU干預,通過DMA進行。 CPU有更多的時間運行其他程序。


Nucleo-64 boards (MB1136) - 6.8 USART communication

預設STM32微控制器的PA2(TX)和PA3(RX)上的USART2端口連接到 ST-LINK 燒錄器連接到你的電腦,代表只要開啟UART2並插上USB就可以與電腦連線,如果你想用UART2與其他擴充板通訊,可以將你Nucle開發板上SB62、SB63短路, SB13、SB14開路(原始狀態SB62、SB63開路, SB13、SB14短路)。

在這種情況下,可以將其他USART端口接到ST-LINK 燒錄器, 例如,在NUCLEO-L053R8上,可以使用PA2 (TX)和PA3(RX)上的USART2。 需要連接兩條跳線:

  • PA2(USART2_TX)在CN9 TX/D1 連接至 CN3 引腳 RX上
  • PA3(USART2_RX)在CN9 RX/D0 連接至 CN3 引腳 TX上

Hercules setup utility

今天一樣會用到它,hercules setup utility一個好用的Socket測試工具,我們將用它來接收、發送UART/USART數據,請先官網下載:https://www.hw-group.com/software/hercules-setup-utility
https://ithelp.ithome.com.tw/upload/images/20201012/20120093fDSq7GwhGL.png



相關連結


結語

有地震!有地震!為甚麼台灣地震直播瞬間標好幾千人啊XD!


上一篇
[Day 26]-【STM32系列】UART/USART TX 資料傳送篇(上)
下一篇
[Day 28]-【STM32系列】實作-伺服馬達 SG- 90 PWM控制
系列文
熟悉Arduino的Maker必看!30天帶你快速入門基於STM32嵌入式開發~30

尚未有邦友留言

立即登入留言