使用Python将串口引脚设为高电平

11 投票
3 回答
20686 浏览
提问于 2025-04-15 20:23

有没有办法用Python(或者C语言)让串口的一个引脚一直保持高电平?如果可以的话,怎么做呢?

3 个回答

1

如果你打开了端口,发送数据的线路应该会变成高电压状态。如果你没有发送任何数据,它应该会保持在这个状态(具体可以参考这里)。不过我自己其实没有试过这个。你可能会发现需要启用其中一个控制线路,比如CTR。

至于软件方面,TheMachineCharmer推荐的pySerial是最适合各种平台的方法。如果你使用的是Windows,Win32 API的调用总结可以在这里找到。你可以查找CreateFile,如果需要设置控制线路,还要看GetCommStateSetCommState。注意,你传给CreateFile的文件名应该像"\\\\.\\COM1"这样。使用.NET的方法总结可以在这里找到。你需要创建一个SerialPort对象,然后访问它的属性来设置控制线路。

3

是的,使用 pySerial可行的

18

通过使用pyserial库中的方法 setRTS(level=True)setDTR(level=True),你可以随意控制RTS和DTR这两个信号线。举个例子,下面的代码会切换第一个串口的RTS引脚状态。(具体细节可以查看pyserial的文档。)

import time
import serial

ser = serial.Serial(0)
ser.setRTS(False)
time.sleep(0.5)
ser.setRTS(True)
time.sleep(0.5)
ser.setRTS(False)

撰写回答