首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python3.8中通过串行(USB- Is 232)端口发送ASCII命令时是否需要特殊的编码?

在Python3.8中通过串行(USB- Is 232)端口发送ASCII命令时是否需要特殊的编码?
EN

Stack Overflow用户
提问于 2021-08-13 16:13:02
回答 1查看 184关注 0票数 0

首先,我还研究了一个看过的问题,这个问题在很多地方都得到了答案,但答案对我不起作用。

我试图通过串口向PCBA发送ASCII命令,然后尝试接收响应。

HW装置:

  1. Computer
  2. USB-RS232 Cable
  3. PCBA

SW: Python3.8

我已经通过RS232终端发送了命令(实时的),它们完美地工作(LED打开),但是不能在python上实现同样的命令。所讨论的命令是"led_r_on“。是的,我得到了"COM5是打开的“提示符,这意味着COM5还活着。

谢谢你的帮助!

代码如下:导入串行导入时间

代码语言:javascript
复制
from time import sleep
from serial import Serial

port = 'COM5'
baud = 115200

ser = serial.Serial(port, baud, timeout=2)
if ser.isOpen():
  print(ser.name + ' is open...')

sleep(1)

ser.write(b'led_r_on')
print(ser.readline(1000))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-14 09:04:42

因为您没有提供任何有关您正在使用的pcba的信息。我将假设,在您的字节序列中,您缺少了某种结束分隔符。现在有很多方法来结束串行传输。我遇到的最常见的两种情况是:b'led_r_on\r\n'或只是b'led_r_on\n'。尝试将ser.write()函数中的字节更改为以下内容。如果这不起作用,您可能需要使用这个:b'led_r_on\x04',这将发送EOT (传输结束) ASCII字符。但我不认为这是必要的。

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

https://stackoverflow.com/questions/68775467

复制
相关文章

相似问题

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