使用Python将串口引脚设为高电平
有没有办法用Python(或者C语言)让串口的一个引脚一直保持高电平?如果可以的话,怎么做呢?
3 个回答
1
如果你打开了端口,发送数据的线路应该会变成高电压状态。如果你没有发送任何数据,它应该会保持在这个状态(具体可以参考这里)。不过我自己其实没有试过这个。你可能会发现需要启用其中一个控制线路,比如CTR。
至于软件方面,TheMachineCharmer推荐的pySerial是最适合各种平台的方法。如果你使用的是Windows,Win32 API的调用总结可以在这里找到。你可以查找CreateFile
,如果需要设置控制线路,还要看GetCommState
和SetCommState
。注意,你传给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)