CH340是否支持通過pyserial控制RTS管腳狀態(tài)

CH340是否支持通過pyserial控制RTS管腳狀態(tài)?

如果支持,可否提供示例,謝謝

您好,使用pyserial操作串口,正常打開串口之后調(diào)用setRTS方法即可。


Win10環(huán)境,當(dāng)前最新CH340驅(qū)動版本,實測如下代碼:

import?serial

ser=serial.Serial()
ser.port?=?"COM1"
ser.baudrate?=?9600
ser.bytesize?=?serial.EIGHTBITS
ser.parity?=?serial.PARITY_NONE
ser.stopbits?=?serial.STOPBITS_ONE
ser.timeout=?.1
ser.xonxoff?=?False
ser.rtscts?=?True
ser.dsrdtr?=?False
ser.writeTimeout?=?0
ser.open()?????????#?open?the?serial?port

print(f'The?default?value?of?RTS?pin?is?{ser.rts}')
ser.rts?=?True
print(f'The?value?of?RTS?pin?is?{ser.rts}')
#?ser.rts?=?False
ser.setRTS(False)
print(f'The?value?of?RTS?pin?is?{ser.rts}')


雖然結(jié)果回讀正常,但是萬用表實測RTS管腳始終維持在高電平,并沒有實際翻轉(zhuǎn)。

請教可能是哪方面出了問題?謝謝


您好,如果單獨控制RTS引腳,在open時候其serial參數(shù)"ser.rtscts = False",此操作為不使能RTS流控功能,此時再調(diào)用setRTS方法對其進(jìn)行控制。


程序修改后


import serial
from time import sleep

ser=serial.Serial()
ser.port = "COM1"
ser.baudrate = 9600
ser.bytesize = serial.EIGHTBITS
ser.parity = serial.PARITY_NONE
ser.stopbits = serial.STOPBITS_ONE
ser.timeout = .1
ser.xonxoff = False
ser.rtscts = False
ser.dsrdtr = False
ser.writeTimeout = 0
ser.open()

ser.setRTS(False)

sleep(200)


在此期間測量RTS管腳(該管腳懸空),電壓始終為5V


問題依舊存在,不知道哪里設(shè)置出了問題


您好,使用setRTS(True)拉低RTS,setRTS(False)恢復(fù)為高電平,您可交替設(shè)置加上對應(yīng)延時可看見電平狀態(tài)。


嗯,謝謝提示,測試已經(jīng)成功

無意中發(fā)現(xiàn)一個小bug,如果在打開串口前設(shè)置setRTS(False)拉高RTS,理論上講RTS應(yīng)該始終處于高態(tài),但是實測看到的情況是在打開串口的一瞬間出現(xiàn)一個非常窄的下拉脈沖,請問這種情況如何避免?


您好,硬件第一次接入系統(tǒng)第一次打開串口產(chǎn)生的脈沖屬于標(biāo)準(zhǔn)行為,并非程序bug。后續(xù)再打開串口時是沒有此波形的。


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频