簡體   English   中英

使用pySerial和Python 3.3

[英]Using pySerial with Python 3.3

我已經看到許多使用串口的代碼示例,人們說他們也在使用代碼。 問題是,當我嘗試代碼時,它不起作用。

import serial

ser = serial.Serial(
    port=0,
    baudrate=9600
    # parity=serial.PARITY_ODD,
    # stopbits=serial.STOPBITS_TWO,
    # bytesize=serial.SEVENBITS
)

ser.open()
ser.isOpen()

print(ser.write(0xAA))

它給我的錯誤是:“SerialException:Port已經打開”。 是我使用python3.3的問題還是我需要安裝一些額外的東西? 有沒有其他方法可以使用Python端口與Python3.3?

所以故事的寓意是......端口在初始化時打開。 ser.open()失敗,因為串口已經被ser = serial.Serial(.....)打開。 這是一回事。

另一個問題是ser.write(0xAA) - 我希望這意味着“發送一個字節0xAA”,它實際上做的是發送170(0xAA)零。 在函數write ,我看到以下內容: data = bytes(data)其中data是您傳遞的參數。 似乎函數bytes()不接受字符串作為參數,因此不能直接使用: serial.write()發送字符串,但ser.write(bytearray(TheString,'ascii'))完成工作。

雖然我正在考慮添加:

if(type(data) == type('String')):
    data = bytearray(data,'ascii')

ser.write() ,雖然這會使我的代碼無法在其他PC上運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM