首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过python正确地与ftdi f232rl模块通信?

如何通过python正确地与ftdi f232rl模块通信?
EN

Stack Overflow用户
提问于 2021-10-21 12:40:25
回答 1查看 78关注 0票数 0

我目前正在尝试通过pyserial与FTDI型R232RL芯片通信,该芯片本身连接到一个小型步进电机。我使用的驱动程序是FTDI VCP驱动程序。通过PuTTY,您只需选择正确的COM端口和波特率即可连接到芯片。通过xterm,您可以向芯片发送一个字符串(例如pos 2600,pos 1500,*rst (用于复位)),以将步进电机移动到新位置。这是可行的,但我想使用python脚本将这些字符串发送到ftdi芯片。

我目前已经尝试使用pyserial包来与芯片通信,这在一定程度上是有效的。它告诉我哪个端口是打开的/芯片插入了哪个端口,但芯片的常用命令似乎都不起作用。到目前为止,还没有返回任何错误,这可能会给出任何关于哪里出了问题的提示。

代码语言:javascript
复制
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文档页面中使用的代码。提前谢谢你!

EN

回答 1

Stack Overflow用户

发布于 2021-10-21 13:05:39

我几年前用过这样的系统,我会试着从我的脑海中找出一些帮助。

我没有读过芯片的数据表,我不完全确定它是否支持115200波特率,所以,为了“安全起见”,我在这个例子中使用了9600。(这是你必须检查的,配置不匹配显然会导致错误的通信)。

代码语言:javascript
复制
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)在所有可用端口上的某个虚拟通信端口连接,并选择它断言的端口。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69662159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档