Python serial communication

前端 未结 2 1264
清酒与你
清酒与你 2021-02-15 02:37

I\'m working on an Arduino project, and I am interfacing it with a Python script due to memory limitations. On the Python side I have a 2 dimensional matrix containing respectiv

相关标签:
2条回答
  • 2021-02-15 03:13

    You should wait a bit for the serial data to arrive.

    The Arduino code should be:

    if (Serial.available()){
        delay(100); // Wait for all data.
        while (Serial.available()) {
            char d = Serial.read();
            str.concat(d);
        }
    }
    

    Also you have to clear your string before re-using it.

    [Edit]

    I forgot to mention ÿ == -1 == 255 which means Serial.read() it is saying it can't read anything.

    0 讨论(0)
  • 2021-02-15 03:16

    I would change the communication so python sends newlines between numbers, so you're not as dependent on the timing:

    s.write(str(25)+'\n')
    

    and then on the receiving side:

    void loop(){
        while (Serial.available() > 0) {
            char d = Serial.read();
            if (d == '\n') {
                char t[str.length()+1];
                str.toCharArray(t, (sizeof(t)));
                int intdata = atoi(t);
                Serial.print(intdata);
                str = String();
            }
            else {
                str.concat(d);
            }
        }
    }
    
    0 讨论(0)
提交回复
热议问题