先問一個問題。項目開發,串口使用python寫好呢還是C++寫好?
我寫了一個小程序,想測試一下電腦串口之間的極限傳遞效率。
電腦上插着兩個usb轉串口,分別RXD接TXD,.
然後啓動兩個python程序,分別開啓串口1,串口2,.波特率115200,超時爲1秒。
串口1等待串口2的數據,一旦接收到數據就回發給串口2。
串口2等待串口2的數據,一旦接收到數據就回發給串口1。
使用定時器測試等待接受的時間,就能測出串口的極限交換頻率。(當然,不同波特率和不同的數據量,不同電腦,不同的USB轉串口會有所不同)
貼一下代碼
程序1:
import serial
import datetime
ser1 = serial.Serial()
ser1.baudrate = 115200
ser1.port = "COM23"
ser1.timeout = 1
ser1.open()
while True:
start = datetime.datetime.now()
ser1.readline()
print datetime.datetime.now()- start
ser1.write("12345\r\n")
程序2:
import serial
import datetime
ser1 = serial.Serial()
ser1.baudrate = 115200
ser1.port = "COM24"
ser1.timeout = 1
ser1.open()
while True:
start = datetime.datetime.now()
ser1.readline()
print datetime.datetime.now()- start
ser1.write("12345\r\n")
最後測得時間差是0.014s。換算過去是71Hz。
不知道C++這麼寫會是一個什麼成績。
如果有興趣,手頭有兩個串口,可以試試看。虛擬串口軟件不能使用,效果不一樣,我測出來是0.002s,沒啥意義。。
有測過的可以留個言~