Nie mogę odbierać danych do monitora szeregowego ArduinoStudio na Ubuntu 14.04 [zamknięte]


11

Używam Arduino Starter Kit, więc mam Uno R3 i przeglądam przykłady, próbuję odczytać dane temperatury z mojego kontrolera w Arduino Studio.

Zasadniczo mój problem można sprowadzić do

void setup() {
    Serial.begin(9600);
}

void loop() {
    Serial.print("stuff");
}

Którego spodziewałbym się nadal drukować „rzeczy” na monitorze szeregowym.

(W praktyce uruchamiam ten dokładny kod, ale cały odczyt temperatury wydaje się nieistotny dla mojego problemu, po prostu wspominam o nim, ponieważ widzę, że moje diody LED zapalają się, gdy temperatura wzrośnie, więc wiem, że kod został przesłany i działa na Duo).

Nie widzę żadnych błędów w konsoli studyjnej, a jeśli połączę się za pomocą gtktermlub screenwidzę wysyłane dane, problem wydaje się być odizolowany od samego monitora szeregowego AndroidStudio.

Używam Ubuntu 14.04 i podłączyłem się przez USB na /dev/ttyACM3.

Próbowałem biec

stty -F / dev / ttyACM3 cs8 9600 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts

jak zasugerowano tutaj, a także próbowałem z baud 115200, dbając również o zmianę wartości w mojej setupfunkcji.

Ja także pobiegłem

chmod a + rw / dev / ttyACM3

Ale nadal nie widzę żadnych błędów ani wyników. Jak przejść do debugowania tego problemu?

Bieganie ls -l /dev/ttyACM*daje

crw-rw ---- 1 root dialout 166, 0 lut. 20 14:22 / dev / ttyACM0

crw-rw ---- 1 root dialout 166, 1 lut. 20 14:22 / dev / ttyACM1

crw-rw ---- 1 root dialout 166, 2 lut. 20 14:22 / dev / ttyACM2

crw-rw-rw- 1 root dialout 166, 3 lut. 20 14:30 / dev / ttyACM3


1
Przetestuj GtkTerm lub PuTTY.
— Mikael Patel,

@MikaelPatel Dzięki, to powinno mi pomóc przynajmniej w zidentyfikowaniu problemu :)
— ivarni

1
Jaka jest wydajność „ls -l / dev / ttyACM *”?
— Avamander,

2
Spróbuj umieścić ciąg „rzeczy” w podwójnych cudzysłowach zamiast pojedynczych cudzysłowów.
— Avamander,

1
Głosuję za zamknięciem tego starego nierozwiązanego pytania, ponieważ pytający informuje w komentarzach, że „Nie posiadam ani samego arduino, ani komputera, którego już używałem”, co oznacza, że ​​nigdy nie będzie możliwe ostateczne rozwiązanie tego problemu.
— Chris Stratton,

Odpowiedzi:


0

Domyślnie w systemie Linux bez określonych reguł wiązania udev w celu zmiany nazwy urządzenia na coś niestandardowego sterownik FTDI powinien mapować USB na port szeregowy na / dev / ttyUSB *, a nie na / dev / ttbACM *. Podejrzewam, że po prostu patrzyłeś w niewłaściwe miejsce. Myślę, że domyślnie jest to / dev / ttyUSB * dla dowolnego klucza USB na szeregowego:

usb-serial.c:   usb_serial_tty_driver->name = "ttyUSB";

Aby upewnić się, że szukasz właściwego pliku urządzenia, uruchom „sudo dmesg -C” priot, aby podłączyć Arduino, a następnie po prostu „sudo dmesg”, aby zobaczyć, gdzie podłączony jest konwerter USB na szeregowy. wiadomość podobna do tej: konwerter ch341-uart jest teraz podłączony do ttyUSB0, gdzie ch341-uart jest zastąpiony tym, co ma twoje arduino (najprawdopodobniej FT232'ish)
— louigi600 27.04.17

Prawdopodobnie nie dotyczy to. Post twierdzi, że używa Uno R3, który nie ma FTDI, ale raczej ma niestandardową implementację szeregową USB w ATmega16u2, która będzie mapowana jako urządzenie ttyACM, a nie ttyUSB - które występują tylko na płytkach wykorzystujących inne rozwiązania szeregowe USB, jak starsze Arduinos i różne klony i kompatybilne.
— Chris Stratton,

Ok, ale nadal wykonywanie dmesg powie ci, które jest prawidłowe urządzenie, które linux przypisuje do arduino .... nie pokaże ch340 ani FT * .... ale nadal będzie raportować, jaki plik specjalny ma przypisany znak w / dev.
— louigi600,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.