我是python和pyserial的新手。我在我的電腦中安裝了python 2.7.4和pyserial-2.5 win32。在這裏,我使用微控制器設備作爲主(主),我的電腦作爲從(次)。這裏每次微控制器都會傳輸數據,而且我的電腦必須通過串口接收數據。我想用python中的代碼來接收連續的數據。這裏傳輸的數據大小會隨時變化。在這裏,我寫了一個代碼發送數據,並且所述代碼是Python代碼從串口連續接收可變數據
import serial
ser= serial.serial("COM10", 9600)
ser.write("Hello world\n")
x = ser.readline()
print(x)
與此代碼我可以將數據傳輸到其他電腦,我通過交叉檢查在其他的PC打開超級終端和我可以看到所發送的數據(世界你好)。
我也寫代碼來接收數據,
import serial
ser=serial.serial("COM10", 9600)
while 1:
if ser.inwaiting():
val = ser.readline(ser.inwaiting())
print(val)
如果我發送數據(你好嗎)從超級終端,我可以在我的電腦接收數據,與上面的代碼。
到現在爲止每件事情都很好。
我現在的問題是,當微控制器設備在可變時間段傳輸變量數據時,我需要在我的電腦中接收數據(安裝了python),請幫我編寫代碼。我是否需要使用緩衝區來存儲收到的數據。如果是的話,代碼將如何。爲什麼以及如何在python中使用緩衝區。根據我在互聯網上的搜索,緩衝區用於切分字符串。
在此先感謝。 對不起我的英文不好。 希望有人會幫助代碼。
我不明白你的問題,你想只存儲數據而不是打印它嗎?在這種情況下,創建一個新列表('data = []')並在循環內附加您接收的內容('data.append(val)') –
在打印之前是否需要將傳輸的數據存儲在緩衝區中? – Steve
「緩衝區」是什麼意思?列表是用於存儲所需數據的有效結構。 –