问题标签 [pyserial]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
60821 浏览

pyserial - Python PySerial。如何知道端口是否已经打开?

我正在尝试使用 python 和 PySerial 在 Linux PC 中编写一个使用串行端口的应用程序。但是在这台电脑上还有其他应用程序使用串口。在尝试使用端口之前,我如何知道端口是否已被其他应用程序打开?

谢谢

0 投票
1 回答
3630 浏览

python - Python套接字服务器和客户端,不断失去连接

我正在扩展远程控制机器人的 GUI 程序。这个想法是用 Python 编写一个简单的 GUI 客户端,该客户端连接到同样用 Python 编写的远程服务器。客户端将简单的消息发送到服务器,服务器将接收消息,然后通过串行将其传输到通过 USB 连接的Arduino Mega

我已经让代码工作了,有点。

现在,我可以从我的客户端 Python GUI 连接一次,发送一条消息,然后它会失去连接。然后我必须停止服务器,重新启动它,然后再发送一条消息。

这里发生了什么?

这是从另一个来源采用的服务器脚本。

这是我的客户端代码,当然减去了资源文件。

编辑

在查看了以下修复程序或至少其中一些修复程序之后,这是我现在的服务器代码,客户端保持不变。

这工作得更好一点,但我认为仍然不对。当我运行它时,我让服务器运行,在启动我的 GUI 后,我可以在服务器上观看我的终端窗口,并在它们通过时获得实际的命令

“从 127.0.0.1 连接” “转发” “从 127.0.0.1 连接” “左” “从 127.0.0.1 连接” “右” “从 127.0.0.1 连接”

看起来好像每次我发送一个命令我都会重新连接。我想在启动 GUI 后保持连接,而不是在每次发送命令时断开连接并重新连接。抱歉,如果我在这方面听起来有点愚蠢,但我大约三周前才开始使用 Python。

0 投票
2 回答
1334 浏览

python - PySerial API 在 write() 期间认为 com 端口仍然打开,为什么?

我正在使用 PySerial(用于串行通信的 Python API)通过蓝牙向诺基亚手机发送 AT 命令。

就在我 open() com 之后,我关掉了手机。然后,我写(“AT\r\n”)。此时,功能块和运行时挂起。

你有什么解决办法吗?

0 投票
2 回答
2332 浏览

python - python:从serial.read()解析字符串

我在 PC 上的 python 脚本和嵌入式 c 之间进行通信。我有以下问题:

从 mcu(嵌入式 c),我发送整数和浮点数的二进制表示。使用 Br@y 的终端,我验证了数字的二进制表示是从 mcu 发送的。在 python 脚本中,我使用 pySerial 的 serial.read 来获取字节,将它们放入一个列表中。

如果我从 mcu 发送以下数字:0x10000000(16 base 10,小端),它在 python 脚本中显示为 '\x10\x00\x00\x00',这并不可怕,因为我可以从一致的索引中提取字符。但是,当两个十六进制数字表示一个 ascii 字符时,字符串将具有 ascii 字符而不是 \xDD。

有没有办法强制字符串只使用 \xDD 表示,而不是 ascii 值?还是我只需要遍历字符串,删除 '\x' 并随时转换 ascii 值?

谢谢

0 投票
1 回答
2992 浏览

python - 使用 Python 读取 USB-GPS 信息

我编写了一个小型 python 脚本,它使用来自 USB gps 加密狗的信息。到目前为止,我一直在 linux 中工作,我可以在 /dev/ 中识别设备并使用 pySerial 从中读取 NMEA 数据。虽然这不是一个完美的解决方案,而且它在任何方面都不是独立于平台的,所以我开始研究 pyUSB 来尝试与设备通信。

设备:

  • 产品名称:ND-100S
  • 波特率:4800
  • USB类:0xEF
  • 子类:2

我的问题是我对usb知之甚少,所以我不知道如何初始化和读取它的句子。

到目前为止,我的测试代码如下所示:

...主要是获取有关设备的信息。

有人对此有经验吗?

0 投票
1 回答
40956 浏览

python - 使用 Python 和 pyserial 访问 USB 串口

如何使用 pyserial 访问 USB 端口?我看过一个例子

我曾经在 Windows 上从 MATLAB 访问串行端口,并使用适当的语法,/dev/ttyUSB0将被替换为COM1或任何其他 COM 端口。

我在 Mac 上,我尝试使用文档中的串行端口扫描仪无济于事pyserial。我想我应该这样写:

如何找出nameMac 上应该有的内容?

编辑:针对下面的答案,我想了解如何访问 USB 到 RS232 转换器以及纯 USB 端口。

0 投票
1 回答
883 浏览

python - 从条码读取传入数据

我必须使用 pyserial 从条形码扫描仪读取传入数据。然后我必须将内容存储到 MySQL 数据库中。我有数据库部分,但没有串行部分。有人可以告诉我如何做到这一点的例子。我正在使用Windows机器。

0 投票
5 回答
3061 浏览

python - 字符串上的 Python/PySerial 位运算符

我正在使用 PySerial (Python 2.7) 从这样的设备读取信息:

缓冲区 += ser.read(3)

现在我在缓冲区中有三个字节(即 0xAE0259),它的类型为 str。由于我是 Python 新手,我正在寻找“pythonian”的方式来切断三个字节中最左边的(0xAE),然后将剩余的两个解释为 int。首先我想到了一个位掩码:buffer &= 0xFFFF 但是python不允许我在 str 上使用位运算符。任何将 buffer 转换为 int 的尝试也失败了。然后我读到了“位串模块”,它让我从 BitArray 中切出位范围,但我想用它来做这件事有点过头了?

0 投票
3 回答
5273 浏览

python - pySerial:一次打开多个端口

编辑:发现问题:我尝试引用一个变量,但混淆了它的名称,所以我声明了一个新变量。事实证明 pySerial 不限于一次打开一个串行点。

我正在尝试使用以下代码一次打开两个串行端口

但似乎我打开第二个,第一个关闭。使用 pySerial 一次打开一个串行端口是否存在固有限制?

谢谢, TG

编辑:我应该先发布这个

0 投票
1 回答
659 浏览

windows - 如何用pyserial打开繁忙的串口(共享端口)

是否可以打开已经在使用的串口?并向其发送数据

或者创建一个新的并为少数应用程序共享它?

我试图避免使用端口对(由 Windows 驱动程序创建)