Arduino串口编程问题
Arduino Serial programming issue
我正在使用 pySerial 从 python 发送一个整数。
import serial
ser = serial.Serial('/dev/cu.usbmodem1421', 9600);
ser.write(b'5');
当我编译时,arduino 上的接收器 LED blinks.However 我想交叉检查 arduino 是否接收到整数。我无法使用 Serial.println() 因为端口繁忙。我不能先在 arduino 上 运行 串行监视器,然后 运行 python 脚本,因为端口很忙。我怎样才能做到这一点?
您可以上传一个 arduino 程序,该程序侦听该特定整数并且仅在获得该整数时才闪烁灯。
您可以使用一些额外的代码来收听 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 代码也在此处监听。
我正在使用 pySerial 从 python 发送一个整数。
import serial
ser = serial.Serial('/dev/cu.usbmodem1421', 9600);
ser.write(b'5');
当我编译时,arduino 上的接收器 LED blinks.However 我想交叉检查 arduino 是否接收到整数。我无法使用 Serial.println() 因为端口繁忙。我不能先在 arduino 上 运行 串行监视器,然后 运行 python 脚本,因为端口很忙。我怎样才能做到这一点?
您可以上传一个 arduino 程序,该程序侦听该特定整数并且仅在获得该整数时才闪烁灯。
您可以使用一些额外的代码来收听 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 代码也在此处监听。