python - Arduino 的 Pyserial 问题 - 适用于 Python shell 但不适用于程序

标签 python serial-port arduino

好吧,我确定我的 Arduino 电路及其代码是正确的。我知道这一点,因为当我使用 Arduino IDE 内置的串行监视器并发送“H”时,LED 会亮起,而当我发送“L”时,LED 会熄灭。

现在我做了一个Python程序

import serial
ser = serial.Serial("COM4",9600)
ser.write("H")

当我运行代码时,LED 闪烁一秒钟然后又熄灭。 但是,当我在 shell 中分别执行这些行中的每一行时,它就像预期的那样工作。

有什么想法吗?

最佳答案

当您打开串行端口时,这会导致 Arduino 重置。由于 Arduino 需要一些时间来启动,所有输入都进入 bitbucket(或者可能进入引导加载程序,天知道它有什么用)。如果你插入一个 sleep ,你等待 Arduino 出现,所以你的串行代码。这就是它交互工作的原因;您正在等待软件启动所需的 1.5 秒。

我确认打开串行端口会重置我的 Arduino Uno ;我闪现了一个程序,该程序将使 setup() 例程中的 LED 闪烁——调用 open("/dev/ttyACM0") 足以触发重置。恕我直言,这是串行支持中令人困惑且未记录的问题。

关于python - Arduino 的 Pyserial 问题 - 适用于 Python shell 但不适用于程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1618141/

相关文章:

python - 类型错误 : create_superuser() missing 1 required positional argument: 'profile_picture'

python - 如何将数据从/dev/ttyUSB0 传输到 python 脚本

arduino - 如何从 Arduino Lilypad 温度传感器获取环境温度

node.js - firmatajs,多个 Arduino 超时(johnny- Five、cylonjs)

c++ - 如何进行特定的位操作?

python - 使用 PyTorch Optimizer 最小化函数 - 返回值全部相同

python - 用 C 扩展 Python、numpy——代码还好吗?

python - 使用 PySimpleGUI 创建自定义进度条

linux - UART 软件和硬件流控制,linux

c# - 拔掉USB后COM口消失