樹莓派 usb與電腦windows系統進行485通訊
阿新 • • 發佈:2020-12-07
1、實驗環境
兩個usb轉485模組
2、接線方式
接線需要交叉接線
3、測試方式
windows端使用常規的串列埠軟體,設定好串列埠引數。
安裝了Python的樹莓派中執行如下程式碼:
serial.py
import serial
import time
import sqlite3
# 載入串列埠埠資訊
ser = serial.Serial("/dev/ttyUSB0", 9600, timeout=0.5) # 57600為了和儀器的波特率匹配
ser.flushInput() # 將serial上的接收資料全部清除
recv=0
localtime=''
# 由於串列埠接收到的資料為二進位制資料,需要將資料進行轉換才能讀取
def returnvalue(count):
recv = list(ser.read(count))
recv = str(bytes(recv), encoding='UTF-8')
data = ser.read(20)
print(recv)
print(data)
return data
# 開始不停接收資料,直到keyboardInterrupt
while (True):
count = ser.inWaiting( ) # 將快取內的資料讀取到count上。使用print觀察接收到的二進位制陣列的個數
localtime = time.asctime(time.localtime(time.time())) #列印當前時間
print(count)
print(localtime)
if count != 0: # 如果接收到資訊,則解碼輸出
print(count)
print(returnvalue(recv),localtime)
print(returnvalue(recv))
print('ends')
time. sleep(5) # 程式暫停5秒,等待快取記憶體入資料。
此程式碼,僅作為測試使用,後面我繼續維護這個程式碼。