我正在使用Python程序将Raspberry Pi中的串行数据发送到Arduino.我正在运行Python 2.7.3.该计划是:
import serial
ser = serial.Serial('/dev/ttyACM0', 115200)
ser.write(b'\x4c\xff\x46')
Run Code Online (Sandbox Code Playgroud)
问题是,如果它们在程序中运行,这三行似乎没有发送任何内容.但是如果我在Python shell中逐行运行它们,它们可以正常工作.
此外,如果我打开Arduino串行监视器,该程序也可以正常工作,而无需在shell中逐个运行这些行.
编辑添加:
似乎发送到Arduino有一些延迟.因此,当我在解释模式下运行代码时,它可以工作,但如果作为一个程序,它不会.我想是因为我在Windows机器上尝试了相同的程序.
import serial
ser = serial.Serial('COM8', 115200)
ser.write(b'\x4c\x20\x46')
Run Code Online (Sandbox Code Playgroud)
如果我在解释模式下运行程序,或者甚至在ser.write命令中使用断点的调试模式下运行,它都可以工作.但如果作为一个程序运行则不行.
编辑添加更多:
事实证明,Arduino在串行通信上具有自动复位功能,必须禁用:
http://playground.arduino.cc/Main/DisablingAutoResetOnSerialConnection#.UwP_wfldV8E
http://forum.arduino.cc/index.php/topic,28723.0.html
我在RESET引脚和地之间使用了一个220 uF电容.这样可行.
很难被这样的虫子咬伤!它仍然很聪明.
我正在使用Raspian操作系统在Raspberry Pi上使用Python。我安装了evdev-0.4.7它,并且对Python 2.7正常工作。但是,当我为Python 3.3尝试时,出现错误。显然,它仅安装在Python 2.7上。
如何evdev在Python 3.3上安装?