【问题标题】: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 程序,该程序会侦听该特定整数,并且只有在获得该整数时才会闪烁。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-27
        • 1970-01-01
        相关资源
        最近更新 更多