[英]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.