我可以使用raspberry pi(型号B+)的USB端口进行串行通信(RS232)吗?
Can I use the USB port of the raspberry pi (model B+) for serial communication (RS232)
我需要连接一台旧机器(thermostream)以连接 raspberry pi(型号 B+)
Thermostream 设备有一个 RS232 串行端口,我想使用 RS232 串行转 USB 电缆将它连接到 raspberry pi 的 USB 端口(电缆的 USB 端插入 pi并且串行端连接到设备)。我需要在 python.
中编写代码
这可能吗?如果是,我应该如何进行?非常感谢任何帮助。
是的。首先你需要安装pyserial
然后,在Python中,您可以使用以下函数创建一个连接到端口的串行对象。 pi 上的 USB 端口被动态分配了一个名称,这些名称可以更改。此功能将使您能够循环遍历每个端口以获取名称。 (可能无法很好地连接多个设备)。检查您希望与之通信的设备上的连接设置(波特率、奇偶校验、停止位等)并修改代码以使用这些设置。
import serial
def serialConnect():
serlocations=['/dev/ttyACM', '/dev/ttyACM0', '/dev/ttyACM1','/dev/ttyACM2', '/dev/ttyACM3','/dev/ttyACM4', '/dev/ttyACM5','/dev/ttyUSB0','/dev/ttyUSB1','/dev/ttyUSB2','/dev/ttyUSB3', '/dev/ttyUSB4', '/dev/ttyUSB5', '/dev/ttyUSB6', '/dev/ttyUSB7', '/dev/ttyUSB8', '/dev/ttyUSB9', '/dev/ttyUSB10','/dev/ttyS0', '/dev/ttyS1', '/dev/ttyS2', 'com2', 'com3', 'com4', 'com5', 'com6', 'com7', 'com8', 'com9', 'com10', 'com11', 'com12', 'com13', 'com14', 'com15', 'com16', 'com17', 'com18', 'com19', 'com20', 'com21', 'com1', 'end']
for device in serlocations:
try:
ser = serial.Serial(
port=device,
baudrate=9600,
parity=serial.PARITY_ODD,
stopbits=serial.STOPBITS_TWO,
bytesize=serial.SEVENBITS
)
print device
return ser
except:
x=0
if device == 'end':
print "No Device Found"
ser = serialConnect()
if ser:
ser.write("TEST")
ser.timeout=5
for i in ser.readlines():
print i
我需要连接一台旧机器(thermostream)以连接 raspberry pi(型号 B+)
Thermostream 设备有一个 RS232 串行端口,我想使用 RS232 串行转 USB 电缆将它连接到 raspberry pi 的 USB 端口(电缆的 USB 端插入 pi并且串行端连接到设备)。我需要在 python.
中编写代码这可能吗?如果是,我应该如何进行?非常感谢任何帮助。
是的。首先你需要安装pyserial
然后,在Python中,您可以使用以下函数创建一个连接到端口的串行对象。 pi 上的 USB 端口被动态分配了一个名称,这些名称可以更改。此功能将使您能够循环遍历每个端口以获取名称。 (可能无法很好地连接多个设备)。检查您希望与之通信的设备上的连接设置(波特率、奇偶校验、停止位等)并修改代码以使用这些设置。
import serial
def serialConnect():
serlocations=['/dev/ttyACM', '/dev/ttyACM0', '/dev/ttyACM1','/dev/ttyACM2', '/dev/ttyACM3','/dev/ttyACM4', '/dev/ttyACM5','/dev/ttyUSB0','/dev/ttyUSB1','/dev/ttyUSB2','/dev/ttyUSB3', '/dev/ttyUSB4', '/dev/ttyUSB5', '/dev/ttyUSB6', '/dev/ttyUSB7', '/dev/ttyUSB8', '/dev/ttyUSB9', '/dev/ttyUSB10','/dev/ttyS0', '/dev/ttyS1', '/dev/ttyS2', 'com2', 'com3', 'com4', 'com5', 'com6', 'com7', 'com8', 'com9', 'com10', 'com11', 'com12', 'com13', 'com14', 'com15', 'com16', 'com17', 'com18', 'com19', 'com20', 'com21', 'com1', 'end']
for device in serlocations:
try:
ser = serial.Serial(
port=device,
baudrate=9600,
parity=serial.PARITY_ODD,
stopbits=serial.STOPBITS_TWO,
bytesize=serial.SEVENBITS
)
print device
return ser
except:
x=0
if device == 'end':
print "No Device Found"
ser = serialConnect()
if ser:
ser.write("TEST")
ser.timeout=5
for i in ser.readlines():
print i