我目前正在尝试通过pyserial与FTDI型R232RL芯片通信,该芯片本身连接到一个小型步进电机。我使用的驱动程序是FTDI VCP驱动程序。通过PuTTY,您只需选择正确的COM端口和波特率即可连接到芯片。通过xterm,您可以向芯片发送一个字符串(例如pos 2600,pos 1500,*rst (用于复位)),以将步进电机移动到新位置。这是可行的,但我想使用python脚本将这些字符串发送到ftdi芯片。
我目前已经尝试使用pyserial包来与芯片通信,这在一定程度上是有效的。它告诉我哪个端口是打开的/芯片插入了哪个端口,但芯片的常用命令似乎都不起作用。到目前为止,还没有返回任何错误,这可能会给出任何关于哪里出了问题的提示。
import serial
import time
ser = serial.Serial(
port='COM3',
baudrate=115200,
parity=serial.PARITY_ODD,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS
)
ser.write(b'*rst')
ser.close() `这是我在pyserial文档页面中使用的代码。提前谢谢你!
发布于 2021-10-21 13:05:39
我几年前用过这样的系统,我会试着从我的脑海中找出一些帮助。
我没有读过芯片的数据表,我不完全确定它是否支持115200波特率,所以,为了“安全起见”,我在这个例子中使用了9600。(这是你必须检查的,配置不匹配显然会导致错误的通信)。
import serial
ser = serial.Serial(port='COM3', baud=9600, timeout=1) # timeouts are important!
ser.open() # THIS STEP IS MISSING IN YOUR QUESTION
ser.write(<your bytes>)
response = ser.readline()
# maybe decode to human readable format? response.decode('ascii')
ser.close()
ser.port = None附加提示:在这里,您可以通过其他方式知道您的芯片连接在COM3上。如果不是呢?您可能想要实现一个例程来确定芯片在哪里以及是否通过try (try/except)在所有可用端口上的某个虚拟通信端口连接,并选择它断言的端口。
https://stackoverflow.com/questions/69662159
复制相似问题