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

瓦卡斯阿里

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

我正在尝试通过串行端口将 ASCII 命令发送到 PCBA,然后尝试接收响应。

硬件设置:

  1. 计算机
  2. USB-RS232 电缆
  3. 印刷电路板

软件:Python 3.8

我已经通过 RS232 终端(realterm)发送了命令,它们运行良好(LED 亮起),但不能用 python 实现相同的功能。有问题的命令是“led_r_on”。是的,我收到“COM5 已打开”提示,这意味着 COM5 还活着。

感谢您的帮助!

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

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))
劳尔

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

FTDI USB 转 RS232 是否比真正的 RS232 COM 端口更好?

如何查看我的串行端口是否为rs232 / 485?

VB6-通过RS232线/ COM端口读取一位

在Linux中唤醒RS232端口?

通过AJAX将始终运行的while循环Python脚本中的RS232数据发送到HTML?

通过rs232串行端口将两台计算机连接在一起

连接VFD显示RS232串行端口

RS232串行端口通讯的设置

如何更改串行(RS232)端口号

在Python中通过RS232到USB电缆读取秤数据

linux命令列出连接到计算机的串行端口(例如RS232)的设备的详细信息(例如PID,VID)

COM端口可以用作RS232串行端口吗?

Python3 中的 ASCII 问题

Python通过USB串行发送许多短信

BrainTree Scientific,Inc.注射泵的串行命令(型号bs-8000)rs232

用Java在Rs232连接中写一个特殊字符

两个串行端口(RS232和RS422)相互冲突。/ dev / ttyUSB崩溃

Java串行端口写入/发送ASCII数据

通过rs232将数据从PC发送到POS

使用apache WSGI的python3默认编码UnicodeDecodeError ascii

如何向RS232串口发送命令?

将 RS232 连接到串行并从 python 脚本建立到 Nextion 显示器的连接

通过python3子进程发送管道命令

使用 Python3 而不是 UTF8 以 ASCII 格式写入文件

python3,尝试从我定义的函数中获取输出,需要一些指导

为什么在切换RS232端口上的RTS引脚时没有任何输出差分?

装有快动开关(微动开关)时,Minibrick8无法通过RS-232串行电缆连接到计算机

使用Python3处理UTF-8文件中的编码错误

从RS232读取串行输入到USB转换器