Почему на моем Arduino нет последовательных данных?

Я запустил простую последовательную программу на моем Arduino Uno , которая просто повторяет все, что вы вводите в нее. Это отлично работает при запуске в Arduino Sketch IDE (v22).

int incomingByte = 0;   // for incoming serial data

void setup() {
    Serial.begin(115200);   // opens serial port, sets data rate
}

void loop() {
    // send data only when you receive data:
    if (Serial.available() > 0) {
        // read the incoming byte:
        incomingByte = Serial.read();

        // say what you got:
        Serial.print("I received: ");
        Serial.println(incomingByte, DEC);
    }
}

(Код взят из http://arduino.cc/en/Serial/Available )

Однако я предпочитаю не использовать IDE Arduino и предпочитаю компилировать свой код C ++ с avr- g ++, поэтому я написал это, которое должно работать точно так же, как указано выше:

extern "C" {
#include 
}
#include 

extern "C" void __cxa_pure_virtual() { while(1); }

int main (void)
{
    int incomingByte = 0;

    Serial.begin(115200);

    while (1) {
        if (Serial.available() > 0) {
            incomingByte = Serial.read();

            //print as an ASCII character
            Serial.print("received: ");
            Serial.println(incomingByte, DEC);
        }
    }
    return 1;
}

Я компилирую и запускаю его, но он не работает. Я никогда не видел, чтобы мой текст отражался от меня. Я попытался распечатать значение Serial.available () в цикле while (1) , и оно всегда равно нулю. Каждый раз, когда я печатаю на клавиатуре, я вижу, как загорается светодиод RX, но после этого ничего не происходит. Я могу отредактировать свой код для успешного вызова Serial.println () , если он находится вне условного условия Serial.available () .

Я подтвердил, что моя скорость передачи в моем последовательном программном обеспечении также установлена ​​на 115200. И да, мое последовательное программное обеспечение указывает на правильный последовательный порт.

Что мне не хватает?

6
задан Peter Mortensen 1 October 2011 в 14:30
поделиться