【问题标题】:Arduino Serial programming issueArduino串行编程问题
【发布时间】:2016-04-21 21:58:17
【问题描述】:
我正在使用 pySerial 从 python 发送一个整数。
import serial
ser = serial.Serial('/dev/cu.usbmodem1421', 9600);
ser.write(b'5');
当我编译时,arduino 上的接收器 LED 闪烁。但是我想交叉检查 arduino 是否接收到整数。我不能使用 Serial.println() 因为端口很忙。我不能先在 arduino 上运行串行监视器,然后再运行 python 脚本,因为端口很忙。我怎样才能做到这一点?
【问题讨论】:
标签:
python
arduino
pyserial
arduino-uno
【解决方案1】:
你可以用一些额外的代码来收听 Arduino 的回复。
import serial
ser = serial.Serial('/dev/cu.usbmodem1421', 9600); # timeout after a second
while ser.isOpen():
try:
ser.write(b'5');
while not ser.inWaiting(): # wait till something's received
pass
print(str(ser.read(), encoding='ascii')) #decode and print
except KeyboardInterrupt: # close the port with ctrl+c
ser.close()
使用Serial.print() 将 Arduino 接收到的内容打印到您的 Python 代码也在监听的串行端口。
【解决方案2】:
您可以上传一个 arduino 程序,该程序会侦听该特定整数,并且只有在获得该整数时才会闪烁。