iT邦幫忙

2023 iThome 鐵人賽

DAY 24
0
自我挑戰組

MCU功能介紹與實作系列 第 24

Day 24:UART通訊

  • 分享至 

  • xImage
  •  

UART(Universal Asynchronous Receiver/Transmitter)通常是嵌入式系統中最常見的通訊接口之一。UART是一種串列通訊協議,用於在MCU和其他設備之間傳輸數據。UART通訊不同於並行通訊,它通常使用少量的引腳,僅需一條傳輸線(TX)和一條接收線(RX)。

基本原理

UART通訊是一種點對點通訊方式,其中一個MCU充當發送器,另一個MCU或設備充當接收器。通的基本原理如下:

  1. 發送端將要傳送的數據(字節或字元)傳輸到UART的傳輸線(TX)。
  2. 接收端使用UART的接收線(RX)來接收數據。
  3. 數據以串列方式傳輸,通常每個字節的起始和結束都有特定的起始位和停止位,以確保數據的正確傳輸。
  4. 通的兩端必須配置相同的波特率(通訊速度)以確保正確的數據接收。

UART通訊的用途

UART通訊具有廣泛的應用,包括但不限於以下領域:

串列控制: 用於連接MCU和其他外部硬體設備,如傳感器、顯示器、GPS模組等。

除錯和監控: 用於MCU的除錯,可以將除錯訊息通過UART傳送到計算機進行監控和分析。

通訊: 用於與其他MCUs或外部設備進行通信,如無線模塊、藍牙模組、GPS接收器等。

數據收集: 用於收集數據並將其傳輸到數據存儲設備或雲服務。

簡單的UART通訊範例

以下是一個基於Arduino的簡單UART通訊範例。這個範例中,一個Arduino板充當發送器,另一個Arduino板充當接收器。發送器將數字"123"傳送到接收器,接收器接收到後再將其回傳。

發送器端程式碼

void setup() {
  Serial.begin(9600); // 初始化串口,波特率設為9600
}

void loop() {
  Serial.write("123"); // 傳送數據
  delay(1000); // 延遲1秒
}

接收器端程式碼

void setup() {
  Serial.begin(9600); // 初始化串口,波特率設為9600
}

void loop() {
  if (Serial.available() > 0) {
    char receivedChar = Serial.read(); // 讀取接收到的數據
    Serial.write(receivedChar); // 將接收到的數據回傳
  }
}

這個範例展示如何在兩個Arduino板之間建立UART通訊。發送器傳送"123",接收器接收到並回傳相同的數據。


上一篇
Day 23:ADC和DAC的應用範例程式
下一篇
Day 25:SPI通訊
系列文
MCU功能介紹與實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言