Python串口通訊詳解

一、串口通訊基礎概念

串口通訊是在計算機內部和外界設備通信時,利用串口(serial port)進行數據傳輸的一種通訊方式。串口是計算機通訊接口之一,在計算機硬件中一般指常見的RS232串口(其他類型如RS485、RS422等串口較為少用)。

串口通訊涉及到的概念包括波特率、數據位、停止位、奇偶校驗位。波特率用於表示傳輸速率,也就是每秒鐘發送的數據字節數。數據位指的是每個數據字節所包含的二進制位數,常見的有7位、8位。停止位用於表示每個數據字節之間的停止時間,常見的有1位和2位。奇偶校驗位用於識別數據傳輸中的錯誤。

二、Python通過PySerial實現串口通訊

Python中有許多第三方庫可用於串口通訊,其中最常用的就是PySerial。PySerial是Python下操作串口通訊的模塊,安裝方法為:

pip install pyserial

使用PySerial模塊,需要從serial模塊中導入Serial類,通過該類的實例化對象來完成串口的打開、讀寫和關閉等操作。具體操作方法如下:

import serial

# 打開串口
ser = serial.Serial('COM1', 9600)

# 向串口發送數據
ser.write(b'hello')

# 讀取串口數據
data = ser.read(10)

# 關閉串口
ser.close()

三、利用Python實現串口通訊

接下來,我們可以基於PySerial模塊,來實現一個簡單的串口通訊程序。具體代碼如下:

import serial

ser = serial.Serial('COM1', 9600) # 打開串口
print('串口已打開')

try:
    while True:
        data = ser.readline().decode()  # 讀入串口數據
        if data:
            print('接收到數據:', data.strip())  # 顯示串口數據
except KeyboardInterrupt:
    pass

ser.close()  # 關閉串口
print('串口已關閉')

在這個示例代碼中,我們通過循環可以不斷從串口中讀取數據,並將其進行實時顯示。如果要向串口中發送數據,也可以通過調用Serial類的write()方法實現。

四、應用實例:串口控制LED燈

最後,我們來嘗試將Python串口通訊運用到具體項目中,通過串口控制LED燈的開關。

步驟如下:

  1. 硬件連接:將串口的TX連接到控制板的RX,RX連接到TX。將控制板的高電平與LED正極相連接,負極與GND相接。
  2. 編寫控制板程序:編寫控制板程序,解析接收到的串口指令,控制LED的開關。
  3. 編寫Python程序:在PC上使用Python編寫串口發送程序,向控制板發送開關指令。

控制板程序代碼如下(Arduino):

int ledPin = 13;

void setup() {
  Serial.begin(9600);  // 串口初始化
  pinMode(ledPin, OUTPUT);  // 將LED接口設為輸出
}

void loop() {
  while (Serial.available()) {  // 判斷串口是否有數據
    char command = Serial.read();  // 讀入數據
    if (command == '1') {  // 控制開關
      digitalWrite(ledPin, HIGH);
      Serial.write("LED已打開\n");
    } else if (command == '0') {
      digitalWrite(ledPin, LOW);
      Serial.write("LED已關閉\n");
    }
  }
}

Python程序代碼如下:

import serial
import time

ser = serial.Serial('COM1', 9600) # 打開串口
print('串口已打開')

try:
    while True:
        command = input('請輸入指令:')
        ser.write(command.encode())  # 發送控制指令
        time.sleep(1)  # 等待設備響應
    
except KeyboardInterrupt:
    pass

ser.close()  # 關閉串口
print('串口已關閉')

在執行完上述兩個程序後,即可通過Python程序向控制板發送指令,從而控制LED的開關狀態。

原創文章,作者:RHHZS,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/360859.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
RHHZS的頭像RHHZS
上一篇 2025-02-24 00:33
下一篇 2025-02-24 00:33

相關推薦

  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29

發表回復

登錄後才能評論