jjzjj

pySerial

全部标签

python - 使用pyserial发送二进制数据

我知道对此有很多讨论,但我仍然有一个问题。我正在尝试使用pyserial通过pyserial将十六进制值发送到我的设备command="\x89\x45\x56"ser.write(command)但是我一直收到错误消息说stringargumentwithoutencoding.有谁知道如何解决这个问题吗? 最佳答案 packet=bytearray()packet.append(0x41)packet.append(0x42)packet.append(0x43)ser.write(packet)

python - pyserial 中 Serial.available() 的等价物是什么?

当我试图在Arduino上读取多行串行数据时,我使用以下习惯用法:Stringmessage="";while(Serial.available()){message=message+serial.read()}在ArduinoC中,Serial.available()返回可从串行缓冲区读取的字节数(参见Docs)。Python中的Serial.available()等价于什么?例如,如果我需要读取多行串行数据,我希望使用以下代码:importserialser=serial.Serial('/dev/ttyACM0',9600,timeout=0.050)...whileser.av

python - 适用于 Python 2.7.2 的 pyserial

我是Python新手。根据internets我在寻找模块pyserial收到此错误后:ImportError:Nomodulenamedserial我首先尝试安装pywin32,进展顺利。但它似乎不包含pyserial。:-(然后我找到了pyserial的单个模块安装程序,我无法安装它,它说它没有在注册表中找到python的路径。:-(之后我找到了thismodule在python.org上,但我不知道该怎么做,它没有安装程序。:-(如何在Windows764上将pyserial添加到Python(64)2.7? 最佳答案 你可以用

python - 从代码中禁用pyserial中的DTR

我正在尝试使用pyserial将数据发送到arduino。但是当我打开COM端口时,它会将DTR设置为低电平并重置电路板。但是,我有我的arduino代码设置,因此我必须通过按住两个按钮1秒钟将其置于串行接收模式。如果可能的话,我宁愿不必在arduino启动时进行串行输入。显然您可以修改serialWin32.py文件,更改以下行:self._dtrState=win32.DTR_CONTROL_ENABLE到:self._dtrState=win32.DTR_CONTROL_DISABLE但是,有没有办法直接在我的python脚本中禁用它?我还需要为所有系统执行此操作。我宁愿不强制人

python - 使用 pySerial 等待 Arduino 自动重置

我正在尝试在Linux上使用非常简单的代码(为了展示问题)从Arduino板上读取行。Python代码:#arduino.pyimportserialarduino=serial.Serial('/dev/ttyACM0')witharduino:whileTrue:print(arduino.readline())Arduino代码://simpleWrite.inolongii=0;voidsetup(){//initializeserialcommunicationsat9600bps:Serial.begin(9600);}voidloop(){Serial.println(i

python - pyserial - 可以从线程 a 写入串行端口,阻止从线程 b 读取?

我试着用谷歌搜索这个,找不到答案,在这里搜索,找不到答案。有没有人研究过从线程a写入Serial()对象(pyserial)并阻止从线程b读取是否是线程安全的?我知道如何使用线程同步原语和线程安全的数据结构,事实上,我当前的程序形式有一个专用于串口读/写的线程,我使用线程安全的数据结构来协调事件在应用程序中。如果我可以从主线程写入串行端口(从不从中读取),并在第二个线程中使用阻塞读取从串行端口读取(从不写入),我的应用程序将受益匪浅。如果有人真的想让我了解为什么这会对应用程序有益,我可以添加我的理由。在我看来,只有一个Serial()实例,即使线程B处于对Serial对象的阻塞读取中,

python - 如何使用 pySerial 从 serialException 中恢复

我有一个应用程序可以读取数据并将其传输到通过USB连接的设备。我正在使用pySerial来促进这种交流。一切正常,直到从PC上拔下USB电缆并抛出异常。重新插入电缆后,我似乎无法恢复并重新连接到我的设备。我恢复的唯一方法是关闭应用程序并拔下并重新插入电缆。如果您能帮助我们理解正在发生的事情,我们将不胜感激。这是我用来帮助我理解该过程的基本测试代码。#ClassusedtocommunicatewithUSBDongleimportserialimporttimeimportsysclassLPort:def__init__(self,port=0):"initializetheLPor

Python/PySerial 和 CPU 使用率

我创建了一个脚本来监控串行端口的输出,该串行端口每半小时接收3-4行数据-脚本运行良好并抓取从端口出来的所有内容,这在一天结束时就是事情...然而,让我感到困扰的是,对于一个只监视单个串行端口的程序来说,cpu使用率似乎相当高,当这个脚本运行时,1个核心将始终处于100%使用率。我基本上是在运行这个问题中代码的修改版本:pyserial-HowtoReadLastLineSentfromSerialDevice我已经尝试定期轮询inWaiting()函数并在inWaiting()为0时让它休眠-我已经尝试了从1秒到0.001秒的间隔(基本上,在不开车的情况下尽可能频繁cpu使用情况)-

python - PySerial:如何在串行线路上发送 Ctrl-C 命令

我正在自动化嵌入式板的配置过程。要进入设置屏幕,我需要发送“Ctrl-C”命令。这不能中断我在本地运行的进程,KeyboardInterrupt将不起作用。我需要发送一个将被引导加载程序解释为Ctrl-C的值。我需要发送的值是多少?谢谢 最佳答案 IIRC,Ctrl-C是etx。因此发送\x03。 关于python-PySerial:如何在串行线路上发送Ctrl-C命令,我们在StackOverflow上找到一个类似的问题: https://stackover

python - pyqt4 和 pyserial

我想做一个应用程序,不断监视串行端口并根据从端口接收到的输入更改用户界面。我已经设法在Linux下使用pyserial从端口读取行,但我不确定如何以常规方式执行此操作:创建一个单独的线程并检查计时器事件的输入?我如何确保我不会错过任何东西?(实现某种握手/协议(protocol)似乎对此有点矫枉过正...)最重要的是:我如何使用qt4的功能来实现?编辑:这就是我现在正在做的事情(我想在应用程序的其余部分运行时定期执行此操作,而不是等待)classMessageBox(QtGui.QWidget):def__init__(self,parent=None):QtGui.QWidget._